javascript的节点问题
请问这段代码中一个节点总数是6,一个节点总数是3,6是哪6个?是dividtext吗?如果是的话为什么不是9个呢?<divid="parentDiv"><divid="d...
请问这段代码中一个节点总数是6,一个节点总数是3,6是哪6个?是div id text吗?如果是的话为什么不是9个呢?
<div id="parentDiv">
<div id="d1">第一个div</div>
<div id="d2">第二个div</div>
<div id="d3">第三个div</div></div>
<button onclick="showNumber1()">通过childNodes获取子节点总数</button>
<button onclick="showNumber2()">通过children()获取子节点总数</button>
<script>
function showNumber1(){
alert(document.getElementById("parentDiv").childNodes.length);
}
function showNumber2(){
alert(document.getElementById("parentDiv").children.length);
}
</script> 展开
<div id="parentDiv">
<div id="d1">第一个div</div>
<div id="d2">第二个div</div>
<div id="d3">第三个div</div></div>
<button onclick="showNumber1()">通过childNodes获取子节点总数</button>
<button onclick="showNumber2()">通过children()获取子节点总数</button>
<script>
function showNumber1(){
alert(document.getElementById("parentDiv").childNodes.length);
}
function showNumber2(){
alert(document.getElementById("parentDiv").children.length);
}
</script> 展开
1个回答
展开全部
childNodes获得的是所有的标签节点和文本节点,而children获得的只是标签节点。
这也就是说,childNodes获得的除了三个div节点外,节点与节点之间的三个回车换行符也被计算在内了,因为它们也是文本啊:
<div id="parentDiv">这里一个回车换行符
<div id="d1">第一个div</div>这里也是一个回车换行符
<div id="d2">第二个div</div>这里也是一个回车换行符,总共三个
<div id="d3">第三个div</div></div>
如果把回车换行去掉:
<div id="parentDiv"><div id="d1">第一个div</div><div id="d2">第二个div</div><div id="d3">第三个div</div></div>
那么两种方法计算的节点数就相同了(都是3)
追问
不是一个表签算一个元素吗 为什么跟换行符有关啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询