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

删除节点代码

<script type="text/javascript">
function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
  for(i=0;i<content.childNodes.length-1;i++)
  {
      var a=content.removeChild(content.childNodes[i]);
      document.write(a);
  }
 
}
</script>这样写的话,点击一次就可以清除,循环语句可以这么写吗

提问者:wlf1112 2015-12-02 15:31

个回答

  • 一毛钱
    2015-12-02 16:36:47
    已采纳

    这样写不可以,因为循环遍历的时候,一边遍历一边删除,这样导致的结果就是会找不到要删除的数据,比如说content有五个元素,i=3时,content只有2个了,你再去获得content[i]已经不存在了,这个可以用倒序的方法实现删除,代码如下:

    function clearTexts() {
            var content = document.getElementById("mainbody");
            for (var i = content.childNodes.length - 1; i >= 0; i--) {
                var childNode = content.childNodes[i];
                content.removeChild(childNode);
            }
        }