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

条件循环错在哪里了

<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");

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

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

  

  return x;

}

</script>


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




</body>

</html>


提问者:慕妹2117740 2016-08-06 19:33

个回答

  • 无知的狗3576298
    2016-08-08 17:14:39

    这样子一次性清理不完,是因为每次清理一个节点后,后面的节点会顶上来,造成一般一般的清理。要么不要i++。每次都清除第一个节点,要么使用i--。



    我的写法:

    function clearText() {

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

      // 在此完成该函数

      var num = content.childNodes.length;

      for (var i=num-1;i>0;i--){

          var node = content.childNodes[i];

          content.removeChild(node);

      }

    }

  • Ankh3696443
    2016-08-06 23:09:28

    for循环里面的长度换一个变量去装,不要放在那里面,否则会出错