__5yu__
2020-08-02 22:18
<script type="text/javascript">
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
for(i=0;i<content.childNodes.length;i++){
var cinchild = content.childNodes[i];
content.removeChild(cinchild);
}
}
看完这位大师的讲解,小的还是不理解,为什么第一次做的时后只会删去空值,而不是全部删除呢?
<script type="text/javascript">
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
for(i=1;i<content.childNodes.length;i++){
var cinchild = content.childNodes[i];
content.removeChild(cinchild);
}
}
原因是conten.childNodes一直在变
简单分解下:
第一次循环, i=0, 此时删除的是第一个#text(空文本节点),这应该没有疑问,删除后数组就变为:["html","#text","php","#text","javascript","#text","jquery","#text","java","#text"], length为10
那么第二次循环,i=1, 此时的childNodes[1]操作的就是第一次删除后得到的数组,那么当然是#text(原有的第二个空文本节点)
....
以此内推,现在就应该懂了
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题