欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于childNodes的删除

程序员文章站 2023-02-20 23:46:30
在使用childNodes时,发现需要删除的元素多于1时,会出现无法全部删除的情况。谷歌以后发现,该属性返回的子节点集合是实时更新的,也就是说,在for循环中,当删除第一个子节点之后,第二次删除的是原子节点集合中的第三个元素。故需要删除全部子节点时,使用 在MDN中查了一下,childNodes返回 ......

在使用childnodes时,发现需要删除的元素多于1时,会出现无法全部删除的情况。谷歌以后发现,该属性返回的子节点集合是实时更新的,也就是说,在for循环中,当删除第一个子节点之后,第二次删除的是原子节点集合中的第三个元素。故需要删除全部子节点时,使用

while(node.childnodes.length>0){
    node.removechild(node.childnodes[0]);
}

 

在mdn中查了一下,childnodes返回的是nodelist对象,该nodelist对象是实时更新的(有些nodelist对象不是实时更新的),所以才会引起上述现象。