条件循环错在哪里了

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

慕妹2117740

2016-08-06 19:33

<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>


写回答 关注

2回答

  • 无知的狗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);

      }

    }

    无知的狗35...

    代码有个错误——循环条件 i>0 改为 i>=0;不然有个文本节点没删掉。

    2016-08-08 17:20:02

    共 1 条回复 >

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

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

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题