慕少8622884
2016-01-10 16:39
问题一:
为什么删除代码content.childNodes[0]可以一次性删除所有节点,而 content.childNodes[i]却不行呢?
问题二:
for (var i=0;i<content.childNodes.length;i++){
var x = content.removeChild(content.childNodes[i]);
document.write(x.innerHTML + "<br>");//********//
}
为什么这部分代码可以一次性删除所有节点,而少了//*******//这行代码却不行呢?
content.childNodes[0]获取的是整个子元素的集合,所以可以一次性删除。content.childNodes[i]获取到的是某一个子元素。
for(var i=0;i<n;i++){ var x = content.removeChild(content.childNodes[0]); //为什么是用content.childNodes[0]而不是用content.childNodes[i]呢? }
第一次循环删除了第一个节点,而content.childNodes的长度也随之改变,之前第二个下标为[1]元素就成了下标为[0]的元素。所以每执行一次删除,content.childNodes的下标都会进1。
你的第二个问题没看懂。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题