[英]JavaScript - DOM nodeValue problem
为什么函数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>
All
数组是Elements的数组。 元素在nodeValue中没有值。
另一方面, childNodes
将同时包含Elements和TextNodes。
很难正确地找到All
的索引,因为All
列出的实际元素的数量可能与您在HTML中看到的有所不同。 例如,尽管HTML文本中没有HEAD或TITLE元素,但它们将出现在DOM中。
两种方法都已弃用并且不安全。 如果为元素提供唯一的标识符,并使用getElementById
函数在DOM中查找元素会更好:
var element = document.getElementById('id_of_element');
原因可能是您错误地假定“本段有两个节点”。 它至少有六个,包括三个文本节点,其中包含“此PARAGRAPH具有两个节点”,“和”和“。”。
使用document.all[6].text
这将为您提供Node Two Text
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.