问答详情
源自:9-14 删除节点removeChild()

这两段代码意思不是一样的吗?

https://img3.mukewang.com/5af4f61400013fd609240896.jpg

我有点犯晕,会的教一下。这两段代码的区别。谢谢了。 

提问者:hhahaha 2018-05-11 09:47

个回答

  • 皇骑
    2018-05-11 20:39:26
    已采纳

    不一样,如果在外面申明node1 = content.childNodes.length 后再执行循环 for (i = 0; i < node1; i++)的话,每次执行for循环的时候node1的值就不会变了;

    如果使用 for (i = 0; i < content.childNodes.length; i++) 的话每次执行 for 循环的时候 content.childNodes.length的值都在变小,因为每次执行一次 for循环都移除了一个length 长度,就是截图中央那段话表达的意思。

  • 慕移动245989
    2018-05-30 17:14:23

    为什么同学代码中最高票回答的第一个代码能正常运行,按理说应该无法一次删除啊?

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

          if(content.childNodes[i].nodeType!=1){   

             continue;  

          }else{

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

          }

             

          }


  • 慕慕0159803
    2018-05-22 19:49:50

    果然有个地方不一样哎,多谢

  • 慕慕0159803
    2018-05-22 10:09:39

    求助呀

  • 慕慕0159803
    2018-05-22 10:09:15

    <script type="text/javascript">

    function clearText() {

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

      // 在此完成该函数

    // var all = content.childNodes.length;

    // for(i=0;i<all;i++)

    // {var x=content.removeChild(content.childNodes[i]);

    //    x=null;

    // }

      

       var all = content.childNodes;

      for(i=0;i<all.length;i++)

      {var x=content.removeChild(content.childNodes[i]);

         x=null;

      }

    }

    </script>

    为什么我用这两种方法写出来的效果是一样的?都不太正常啊

  • hhahaha
    2018-05-18 14:59:24

    非常感谢