当我加载页面时,会创建一个节点列表,它看起来像这样:
[text, h4, text, span, br, input, br, span, br, input, br, span, br, input, br, span, br, input, br]
我创建了一个简单的for
循环,遍历所有这些元素,并将它们从DOM中删除。 (所有元素都在<section>
中)
以下是循环代码:
for(element in videoTitlesElement.childNodes){
if(!isNaN(element)){
videoTitlesElement.removeChild(
videoTitlesElement.childNodes[element]);
}
}
但是,在循环结束时,nodeList 的样子就像这样:
[h4, span, input, span, input, span, input, span, input]
为什么并非所有元素都被删除了?
谢谢。
[A, B, C]
,for..in
循环内部将有一个索引器来跟踪当前元素。因此,在开始时,索引器为0,指向元素A
。然后你删除第一个元素,第二个元素B
现在成为第一个。索引器现在被提升并指向1。现在移除索引1处的元素C
。正如你所看到的,索引0处的元素B
未受影响并被跳过。 - Sani Huttunen