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

谁能告诉我,这两端代码有啥区别吗(http://www.imooc.com/code/1700)

// function clearText() {

//   var content=document.getElementById("content");

//   // 在此完成该函数

//   var childNodes = content.childNodes;

//   for(i=0;i<childNodes.length;i++){

//      content.removeChild(childNodes[0]);

//   }

  

// }


function clearText() {

  var content=document.getElementById("content");

  // 在此完成该函数

  var nodel=content.childNodes.length;

  for(var i=0;i<nodel;i++){

      content.removeChild(content.childNodes[0]);

  }

}


正在回答

7 回答

https://img1.sycdn.imooc.com//5cdb9d6d000101d908000708.jpg测试图片转base64

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

https://img1.sycdn.imooc.com//5cdb97860001ac2d08000794.jpg测试图片转base64

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

测试内容https://img1.sycdn.imooc.com//5cdb892700010f8808000794.jpg

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


http://img1.sycdn.imooc.com//5cdb6fcc00011dbd04170337.jpg
测试内容

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

区别是第一个的content.childNodes.length随着你删除的节点个数在变化而下面的代码你将contentlchildNodes.length的初始值赋值给nodel值不会变化

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

这是删除的顺序问题,因为你删除第一个的时候其他的节点的顺序发生了改变,第二个节点代替了第一个节点的位置,后面一次类推,所以最删除的节点为1,3,5.。。等等

你的第二个函数这是永远执行的是删除第一个节点,那怕后面的顺序改变,也不会有影响的,因为他是一个一个个的上。。

当然你也可以换个顺序进行删除,var nodel=content.childNodes.length-1;

for(var i=nodel;i>=0;i--)

{

content.removeChild(content.childNodes[i]);

}

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

上面一个清除节点,第一次没效果,第二次突然清除3个,第三、四次各清除1个,而下面的能够做到一次性直接全部清除,为什么?

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

举报

0/150
提交
取消

谁能告诉我,这两端代码有啥区别吗(http://www.imooc.com/code/1700)

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