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

为什么i++不能一次性删除 i--却可以啊


<script type="text/javascript">
function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
         var i =0
        for( i=0; i<content.childNodes.length-1;i++){
            var childNode=content.childNodes[i];
            content.removeChild(childNode)
        }  

}
</script>

提问者:苏慕然 2015-11-20 15:15

个回答

  • pardon110
    2015-11-21 16:55:09
    已采纳

    content.childNodes.length动态获取节点的个数,假定删除2个节点,

    第一次循环: i=0  , length为2,

    执行删除子节点后,i++

    第二次循环: i=1,length为1; 条件不通过不执行。跳出。

    通过一轮for循环,不能删除所有。

    问题的关键在于被删除后length值可变。用i++的形式,不能删除最后一个元素,而使用i--每次总能将最后一个删掉。