我有一个有两个 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。除了围绕它们的代码之外,您无能为力。或者,您可以完全摆脱所有空白,但是我敢打赌这不是一个选择。这是使网页变得如此有趣,有趣的一部分:-)