繁体   English   中英

JavaScript-DOM nodeValue问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM