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

使用removeChild()方法利用for循环删除节点会出错。用remove()就可以

removeChild只能删除一个,循环删除时用这个就报错。换成remove就可以了!这是为什么?

提问者:慕移动6874463 2016-10-26 17:40

个回答

  • Leon_Tsui
    2016-10-26 20:25:03
    已采纳

    你倒是把代码贴出来

  • _Five
    2018-10-06 23:24:12

    sorry,作为一枚萌新,我怀着一腔热血回答了之后才发现,oh my god,这是两年前的问题,尴尬。

  • _Five
    2018-10-06 23:22:05

     你的这一块都是废话:for (var i=0;i<num;i++){ content.remove(content.childNodes[i].innerHTML)  }
     就相当于这一句话:content.remove();  
     如果你非要用for 不是removeChild()没用,而是应该这么写:content.removeChild(content.firstChild);
     你能理解吗?即使你那种想法不报错,也是删不干净的,因为动态变化的长度你非要把它静态删,你写法就是错误的
     ,当然要报错。


  • 慕移动6874463
    2016-10-27 11:42:25

    <div id="content">

      <h1>html</h1>

      <h1>php</h1>

      <h1>javascript</h1>

      <h1>jquery</h1>

      <h1>java</h1>

    </div>


    <script type="text/javascript">

    function clearText() {

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

      // 在此完成该函数

      var num=content.childNodes.length;

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

          content.remove(content.childNodes[i].innerHTML)

      }

      

    }

    </script>


    <button onclick="clearText()">清除节点内容</button>

    这是Javas进阶篇中的删除节点removeChild()的内容的任务。for 循环中要把removeChild()换成remove()才有用