为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不是逐一删除?

for(var i=0;i<content.childNodes.length-1;i++){
     var childNode = content.childNodes[i] ;
     content.removeChild(childNode);
      
      
  }

正在回答

2 回答

这个for循环方法中,每次执行删除以后content都发生了变化,比如删除了content数组中的一个元素,content的长度就减一了,后面的元素依次往前顶一个。所以这里i不是逐一删除,肯定是隔了一个,而且你这样写循环次数也会出错。建议这样写:

var length = content.childNodes.length;
for(var i=0;i<length ;i++){
     var childNode = content.childNodes[0] ;
     content.removeChild(childNode);
      
      
  }


0 回复 有任何疑惑可以回复我~

第一次循环的后删除了第一个子节点,原本第二的个子节点又变成了第一个,而循环以2 开始了。因此第二次循环这次删除的实际是原来的第三个节点。

此处content.childNodes[i]应将i变为1.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不是逐一删除?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信