慕慕1251584
2016-08-14 00:16
为什么会有不一样的效果?
//法二,一次性清除节点内容
/*
for(var i=content.childNodes.length-1;i>=0;i--){
var chnode=content.childNodes[i];
content.removeChild(chnode);
}
*/
//法三,多次方清除节点内容
/*
for(var i=0;i<content.childNodes.length;i++){
var chnode=content.childNodes[i];
content.removeChild(chnode);
}
*/
每清理一个子节点,content.childNodes.length就减1,最后一个子节点节点的角标也会减1。
所以法二一直在循环清除每个新的子节点序列中最后一个子节点,直到没有子节点。
而法三,第一次循环,首先子节点序列长度在递减,最多清除一半,可能还包含空白节点。有点类似二分法。所以要清除多次,每次差不多清一半。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题