猿问

2个方法就是循环顺序不一样,为什么效果就不一样

for(var i=0;i<content.childNodes.length;i++){
    var chnode=content.childNodes[i];
    content.removeChild(chnode);  
  }
  //此方法一个个移除结点
   for(var i=content.childNodes.length-1;i>=0;i--){
      var chnode=content.childNodes[i];
      content.removeChild(chnode);  
   }
   //此方法可以一次性移除结点

不就是循环顺序不一样,为什么效果不一样

拉拉拉
浏览 1112回答 2
2回答

Caballarii

因为removeChild改变了childNodes的个数,下标就变了。比如[0,1,2],i=0时,移除了0,剩下[1,2],第二次执行的时候i=1,这时候移除的就是2了,因为1已经被提前到0的位置上了

_潇潇暮雨

楼上正解。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答