gpt4 book ai didi

javascript - DOM 中缺少子节点

转载 作者:行者123 更新时间:2023-11-29 21:57:14 25 4
gpt4 key购买 nike

我正在使用 DOM 检索类名为“main”的元素节点的子节点,如下面的 html 片段所示。在我看来,父元素下有 9 个子元素。但我很惊讶由子节点值。有没有人对下面的输出有解释

<section class="main">
<h2>Page Title</h2>
<h3>Article Heading</h3>
<p>First Paragraph</p>
<p>Second Paragraph</p>
<p>Third Paragraph</p>
<p>Fourth Paragraph</p>
<h3>Instructions</h3>
<p>Fifth Paragraph</p>
<p>Sixth Paragraph</p>
</section>

JS代码:

var articleHeadElemNode = document.querySelector(".main");
console.log(articleHeadElemNode.childElementCount);

for (i =0; i<articleHeadElemNode.childElementCount ; i++ )
console.log(articleHeadElemNode.childNodes[i]);

最终输出:

9
#text
<h2>​Page Title​</h2>​
#text
<h3>​Article Heading​</h3>​
#text
<p>​First Paragraph​</p>​
#text
<p>​Second Paragraph​</p>​
#text

其余段落在哪里?我设法使用检索元素document.querySelector(".main > h3") 或使用 querySelectorAll 但我对这里发生的事情的逻辑解释感兴趣?

最佳答案

那是因为您正在读取 childElementCount,它是 nodeType1 的 childNodes 的计数,并且您正在读取所有 childNodes 在循环中,它还返回 nodeType3textNode。您应该在循环中使用 children 属性而不是 childNodes

关于javascript - DOM 中缺少子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com