为什么不能一次全清

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

沈凌松233

2017-02-23 20:24

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>


<body>

<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 k=0;

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

  var a=content.childNodes; 

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

 content.removeChild(a[i]);

 //k++;

 }

// document.write(k);

}

</script>


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




</body>

</html>


写回答 关注

4回答

  • 慕粉1440489053
    2017-03-28 23:26:44

    他子节点长度是随着FOR循环不断变化的 可以在for循环前把长度存入一个变量中

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>
    
    <body>
    <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 x = content.childNodes.length
        var num =0
      for (i=0;i<x;i++){
         content.removeChild(content.firstChild);
          num = num+1
         console.log(num)
    }
     }
    </script>
    
    <button onclick="clearText()">清除节点内容</button>
    
    
    
    </body>
    </html>

    这样就可以实现一次全清

  • 慕的地6863477
    2017-03-19 15:49:16

    当i=3的时候  子节点的长度就只有2,循环就不会继续执行了

  • BaconNUDT
    2017-02-25 23:34:14
    for(var i=0; i<content.childNodes.length;){
          content.removeChild(content.childNodes[i]);
      }

    如果非要用for的话,这样就可以了。不需要对i加一,其实这个用while更简单,直接判断子节点个数有没有到0就可以。

  • 沈凌松233
    2017-02-23 20:31:51

    看了下置顶说不能用length作为判断条件 所以做了修改  

    function clearText() {

    //var k=0;

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

      var a=content.childNodes; 

      var k=a.length;

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

     content.removeChild(a[i]);

     a[i]=null;

     //k++;

     }

    // document.write(k);

    }

    然而还是不行  求大神解惑

JavaScript进阶篇

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

469343 学习 · 22585 问题

查看课程

相似问题