为什么头元素中的内容可以通过.text访问,而p元素中的内容可以通过JavaScript中的innerHTML访问
如果我有以下html为什么头元素中的内容可以通过.text访问,而p元素中的内容可以通过JavaScript中的innerHTML访问,javascript,html,Javascript,Html,如果我有以下html <h2 id="myheader">some content</h2> <p id="myp">some content </p> 但是后来我尝试了使用段落元素的相同逻辑,但是我不得不使用innerHTML 这种差异背后是否有某种逻辑 此外,在控制台中,我喜欢这样一个事实,即我可以编写类似于window的东西,然后我可以在window之后深入查看所有可用的方法。例如,这就是我如何找到窗口的内容。document与docume
<h2 id="myheader">some content</h2>
<p id="myp">some content </p>
但是后来我尝试了使用段落元素的相同逻辑,但是我不得不使用innerHTML
这种差异背后是否有某种逻辑
此外,在控制台中,我喜欢这样一个事实,即我可以编写类似于window
的东西,然后我可以在window
之后深入查看所有可用的方法。例如,这就是我如何找到窗口的内容。document
与document
相同。对于像document.getElementById('myheader')
这样的事情,有没有一种方法可以做同样的事情,一种调查dotdocument.getElementById('myheader')之后有哪些方法可用的方法的方法
编辑:我意识到我对.text
的看法是错误的。我的代码一定有问题(尽管我看不见),很抱歉造成混淆,如果您认为应该对其进行编辑以避免误导任何人,请执行
感谢可用于两种元素(H1
和p
)
您可以像这样检查HTMLElement:
var elem = document.getElementById(some_id),
s = [],
key;
for (key in elem) {
s.push(key + ': ' + elem[key]);
}
s = s.join('\n');
console.log(s);
许多控制台还通过记录元素来创建元素结构树:
console.log(document.getElementById(some_id));
您真的可以执行document.getElementById('myheader')。text
?因为在我看来它不是,除非您使用jQuery方法
在任何情况下,都可以在两个元素上使用类似的方法
window.document
与document
相同的原因是document
是中的一个变量,而是窗口的范围
此外,为了研究控制台中可用的方法,您可以将元素分配给变量,然后您可以看到自动完成,至少在Chrome开发者工具中是这样
var el = document.getElementById('myheader')
然后开始键入el控制台中的code>。根据MDN,主机上没有.text
属性。我已经在Chrome上测试过了,只是为了确定:
> document.createElement('h2').text
undefined
要从任何元素可靠地获取文本内容,可以使用以下构造:
var text = element.textContent || element.innerText || '';
在这里,.textContent
被大多数浏览器理解,而.innerText
特定于IE,并且'
是回退值。您使用的浏览器是什么<至少在Chrome中,code>.text
似乎不是可用的属性。W3C应该提供的属性,例如
到
和generic.Im使用的是chrome33.0.1750.152版
,元素是一个
文本工作var h2=document.createElement('h2');h2.text
在Chrome中为我提供了未定义的。不仅仅是这个getElementById('myheader')。text
作为h2
var text = element.textContent || element.innerText || '';