我有一个有两个 child 的div,一个<h2>和一个<ul>

我的问题是,当我检查div的.length时,通过执行document.getElementById('wrap').childNodes.length,我得到了5而不是2。如果我在console.log上运行childNodes,我会得到:

[<TextNode textContent="\n ">, h2, <TextNode textContent="\n ">, ul, <TextNode textContent="\n ">]

我的HTML看起来像这样:
<div id="wrap">
    <h2>Lorem</h2>
    <ul>
        <li>Lorem</li>
        <li>Ipsum</li>
    </ul>
</div>

缩进代码从来没有影响childNodes的长度。

如果我将所有内容都键入一行(作为一个长字),我将摆脱所有<TextNode>,它应计为2,而不是5。

我不知道出了什么问题,但是我认为我需要删除所有空的textnode。
哪种方法是最好的方法?

谢谢堆

附言这些<TextNode textContent="\n ">遍及整个文档,因此我需要将其全部删除,而不仅是在此特定div中。

最佳答案

Firefox,对不对? Firefox will treat whitespace as a textnode。除了围绕它们的代码之外,您无能为力。或者,您可以完全摆脱所有空白,但是我敢打赌这不是一个选择。这是使网页变得如此有趣,有趣的一部分:-)

09-07 12:49