为什么函数NodeValue__Two()显示null?对我来说,它应该显示与函数NodeValue__One()相同的内容。
我已经在IE6上测试过了。
<html>
<body>
<script language="JavaScript">
function NodeValue__One()
{
alert(myNodeOne.childNodes(0).nodeValue);//This is OK
}
function NodeValue__Two()
{
alert(document.all[6].nodeValue);//This is NOT OK
}
</script>
<p>This PARAGRAPH has two nodes,
<b id="myNodeOne">Node One Text</b>, and
<b id="myNodeTwo">Node Two Text</b>.
<input id="txt1" type="text" value="Damn!!!" />
</p>
<button onclick="NodeValue__One();">Node Value 1</button></br>
<button onclick="NodeValue__Two();">Node Value 2</button>
</body>
</html>发布于 2009-11-13 17:20:50
All数组是一个元素数组。元素在nodeValue中没有值。
另一方面,childNodes将同时包含Elements和TextNodes。
这真的很难让All的索引正确,因为所有列出的实际元素的数量可能与您在HTML中看到的有所不同。例如,假设在HTML文本中不存在HEAD或TITLE元素,它们将出现在DOM中。
发布于 2009-11-13 17:21:23
这两种方法都被弃用,而且不安全。如果给元素提供唯一的标识符并使用getElementById函数在DOM中查找元素会更好:
var element = document.getElementById('id_of_element');发布于 2009-11-13 17:19:51
一个原因可能是你错误地假设了“本段有两个节点”。它至少有六个,其中包括三个文本节点,其中包含"This PARAGRAPH two nodes“、”and“和".”。
https://stackoverflow.com/questions/1728084
复制相似问题