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>
展开
 我来答
网海1书生
科技发烧友

2018-09-15 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26232

向TA提问 私信TA
展开全部

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)

追问
不是一个表签算一个元素吗 为什么跟换行符有关啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式