关于childNodes的删除

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

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

while(node.childNodes.length>0){
    node.removeChild(node.childNodes[0]);
}

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

  • 发表于 2019-02-22 18:40
  • 阅读 ( 208 )
  • 分类:网络文章

条评论

请先 登录 后评论
不写代码的码农
小编

篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除