Shanemark
2016-04-08 15:16
for(var i=0;i<content.childNodes.length-1;i++){
var childNode = content.childNodes[i] ;
content.removeChild(childNode);
}
这个for循环方法中,每次执行删除以后content都发生了变化,比如删除了content数组中的一个元素,content的长度就减一了,后面的元素依次往前顶一个。所以这里i不是逐一删除,肯定是隔了一个,而且你这样写循环次数也会出错。建议这样写:
var length = content.childNodes.length; for(var i=0;i<length ;i++){ var childNode = content.childNodes[0] ; content.removeChild(childNode); }
第一次循环的后删除了第一个子节点,原本第二的个子节点又变成了第一个,而循环以2 开始了。因此第二次循环这次删除的实际是原来的第三个节点。
此处content.childNodes[i]应将i变为1.
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题
回答 1
回答 1
回答 2
回答 1
回答 2