2017-01-19 30 views
0

我创建了新的html元素。并初始化其价值。然后,当我尝试通过el.title达到其标题时,它将返回undefined。不过,我可以通过getElementsByTagName("title")为什么动态创建html元素的标题没有被“.title”达到?

下面的例子是;

var el = document.createElement('html'); 
el.innerHTML = "<!DOCTYPE html><html><head><title>HTML Reference</title></head><body>The content of the document......</body></html>"; 

console.log(el.title) 
**undefined** 

//but the following returns the title 
el.getElementsByTagName("title")[0].text 
"HTML Reference" 

为什么会发生这种情况?为什么el.title返回undefined

回答

4

title属性的HTML元素对象映射到the titleattribute,它不会找到第一个标题元素后代。

你会得到,如果你有<html title='bad place for a title'>

+1

边注的结果:'document.title'将返回标题标签值:http://www.w3schools.com/jsref/prop_doc_title.asp –

+0

@Pepo_rasta - 它将返回实际文档的标题,而不是刚刚创建的HTML元素及其后代。 – Quentin

+0

是的,它只是注意'.title'函数 –