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

来源:9-14 删除节点removeChild()

慕粉1346254686

2017-03-31 11:48

// 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回答

  • 慕粉2011362409
    2019-05-15 13:02:45

    https://img2.mukewang.com/5cdb9d6d000101d908000708.jpg测试图片转base64

  • 慕粉2011362409
    2019-05-15 12:37:43

    https://img2.mukewang.com/5cdb97860001ac2d08000794.jpg测试图片转base64

  • 慕粉2011362409
    2019-05-15 11:36:14

    测试内容https://img.mukewang.com/5cdb892700010f8808000794.jpg

  • 慕粉2011362409
    2019-05-15 09:48:07


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

  • 慕粉2011362409
    2017-05-20 02:39:19

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

  • 慕粉1469360299
    2017-04-07 17:24:47

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

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

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

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

    {

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

    }

  • 慕粉1346254686
    2017-03-31 11:50:35

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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题