为了账号安全,请及时绑定邮箱和手机立即绑定

请教任务代码问题

 function clearText(){
        var content = document.getElementById("content");
        var node = content.childNodes;
        var n = node.length;
        alert(n);
        for(var i=0;i<n;i++){
            content.removeChild(node[i]);
        }
    }
</script>

为何不能一次性删除,我在进入循环之前已经用var node和var n 保存了长度和原数组了,为什么node在循环里的长度还是在变化,有点想不明白,求指教。

正在回答

1 回答

<script type="text/javascript">

function clearText(){

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

        var node = content.childNodes;

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

            content.removeChild(node[i]);

            i--;

        }

    }

因为childNodes获得子节点的数据时实时的,也就是说你减一个,它的长度也会减一。后面那个循环的时候i每次加一,长度减一。就相当于每次减了2个,所以导致你的n第一次是5,第二次是2。這中情况。所以每次循环把多减掉的一加上取就可以。  這是我的理解。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

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

进入课程

请教任务代码问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信