素本往后
2016-12-03 19:17
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在循环里的长度还是在变化,有点想不明白,求指教。
<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。這中情况。所以每次循环把多减掉的一加上取就可以。 這是我的理解。
JavaScript进阶篇
469067 学习 · 22582 问题
相似问题