toofirst
2016-03-05 19:31
<script type="text/javascript"> function clearText() { var content=document.getElementById("content"); // 在此完成该函数 var x=content.childNodes; for(var i=0;i<x.length;i++){ var y=content.removeChild(x[i]); y=null; } } </script>
点第二下 1,2 ,5节点清除了,咋回事
因为childnodes集合是动态改变的,在for循环中i的值不断递增,前面的属性就删不掉了。
x在第一次循环的时候是这样的[text, h1, text, h1, text, h1, text, h1, text, h1, text]
i=0 ,text删掉,此时x变成[ h1, text, h1, text, h1, text, h1, text, h1, text]
i=1,此时X变成[ h1, h1, text, h1, text, h1, text, h1, text]
....
应该明白了吧。为什么要点两次才会删除h
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题