如果我有以下html
<h2 id="myheader">some content</h2>
<p id="myp">some content </p>
要获取标题的内容,我可以
document.getElementById('myheader').text
但后来我用段落元素尝试了相同的逻辑,但我不得不使用innerHTML
这种差异背后是否有某种逻辑?
同样在控制台中,我喜欢这样的事实,即我可以编写类似window
的内容,然后我可以深入查看window
之后可以使用的所有可用方法。例如,我发现window.document
与document
相同的方式。有没有办法对document.getElementById('myheader')
这样的事情做同样的事情,这是一种调查点document.getElementById('myheader').HERE
之后可用的方法,只是为了通过实验来学习
编辑:我发现自己错误.text
。我的代码肯定有问题(即使我看不到它),对不起任何混淆,如果您认为应编辑不误导任何人,请
谢谢
答案 0 :(得分:0)
textContent
适用于两个元素(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));
答案 1 :(得分:0)
你能真的document.getElementById('myheader').text
吗?因为在我看来,除非你使用jQuery .text()
方法。
在任何情况下,您都可以在两个元素上使用innerText
and textContent
等方法。
window.document
与document
相同的原因是因为document
是global scope中的变量, window
1}}范围。
此外,要调查控制台中可用的方法,您可以将元素分配给变量,然后您可以看到自动填充,至少在Chrome开发人员工具中。
var el = document.getElementById('myheader')
然后开始在控制台中输入el. …
。
答案 2 :(得分:0)
根据MDN,HTMLHeadingElement
上没有.text
属性。我已经在Chrome上对此进行了测试,只是为了确定:
> document.createElement('h2').text
undefined
要从任何元素可靠地获取文本内容,您可以使用此构造:
var text = element.textContent || element.innerText || '';
此处,大多数浏览器都理解.textContent
,而.innerText
特定于IE,''
是后备值。