关于childNodes的删除
程序员文章站
2022-05-27 22:30:37
在使用childNodes时,发现需要删除的元素多于1时,会出现无法全部删除的情况。谷歌以后发现,该属性返回的子节点集合是实时更新的,也就是说,在for循环中,当删除第一个子节点之后,第二次删除的是原子节点集合中的第三个元素。故需要删除全部子节点时,使用 在MDN中查了一下,childNodes返回 ......
在使用childnodes时,发现需要删除的元素多于1时,会出现无法全部删除的情况。谷歌以后发现,该属性返回的子节点集合是实时更新的,也就是说,在for循环中,当删除第一个子节点之后,第二次删除的是原子节点集合中的第三个元素。故需要删除全部子节点时,使用
while(node.childnodes.length>0){ node.removechild(node.childnodes[0]); }
在mdn中查了一下,childnodes返回的是nodelist对象,该nodelist对象是实时更新的(有些nodelist对象不是实时更新的),所以才会引起上述现象。
上一篇: ES6 学习6 数组的扩展
下一篇: java接口和抽象类的简单理解