Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么头元素中的内容可以通过.text访问,而p元素中的内容可以通过JavaScript中的innerHTML访问_Javascript_Html - Fatal编程技术网

为什么头元素中的内容可以通过.text访问,而p元素中的内容可以通过JavaScript中的innerHTML访问

为什么头元素中的内容可以通过.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

如果我有以下html

<h2 id="myheader">some content</h2>
<p id="myp">some content </p>
但是后来我尝试了使用段落元素的相同逻辑,但是我不得不使用
innerHTML

这种差异背后是否有某种逻辑

此外,在控制台中,我喜欢这样一个事实,即我可以编写类似于
window
的东西,然后我可以在
window
之后深入查看所有可用的方法。例如,这就是我如何找到
窗口的内容。document
document
相同。对于像
document.getElementById('myheader')
这样的事情,有没有一种方法可以做同样的事情,一种调查dot
document.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

根据MDN,主机上没有
.text
属性。我已经在Chrome上测试过了,只是为了确定:

> document.createElement('h2').text
  undefined
要从任何元素可靠地获取文本内容,可以使用以下构造:

var text = element.textContent || element.innerText || '';

在这里,
.textContent
被大多数浏览器理解,而
.innerText
特定于IE,并且
'
是回退值。

您使用的浏览器是什么<至少在Chrome中,code>.text
似乎不是可用的属性。W3C应该提供的属性,例如
和generic.Im使用的是chrome
33.0.1750.152版
,元素是一个
文本
工作
var h2=document.createElement('h2');h2.text
在Chrome中为我提供了
未定义的
。不仅仅是这个
getElementById('myheader')。text
作为
h2
var text = element.textContent || element.innerText || '';