首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript - DOM nodeValue问题

JavaScript - DOM nodeValue问题
EN

Stack Overflow用户
提问于 2009-11-13 17:15:45
回答 4查看 532关注 0票数 1

为什么函数NodeValue__Two()显示null?对我来说,它应该显示与函数NodeValue__One()相同的内容。

我已经在IE6上测试过了。

代码语言:javascript
复制
<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>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-13 17:20:50

All数组是一个元素数组。元素在nodeValue中没有值。

另一方面,childNodes将同时包含Elements和TextNodes。

这真的很难让All的索引正确,因为所有列出的实际元素的数量可能与您在HTML中看到的有所不同。例如,假设在HTML文本中不存在HEAD或TITLE元素,它们将出现在DOM中。

票数 3
EN

Stack Overflow用户

发布于 2009-11-13 17:21:23

这两种方法都被弃用,而且不安全。如果给元素提供唯一的标识符并使用getElementById函数在DOM中查找元素会更好:

代码语言:javascript
复制
var element = document.getElementById('id_of_element');
票数 2
EN

Stack Overflow用户

发布于 2009-11-13 17:19:51

一个原因可能是你错误地假设了“本段有两个节点”。它至少有六个,其中包括三个文本节点,其中包含"This PARAGRAPH two nodes“、”and“和".”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1728084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档