为了账号安全,请及时绑定邮箱和手机立即绑定

为什么一开始要按两下才开始删除节点,而且一下删除两个。后面就是按一下删除一个了?

<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);

      

  }

  

}

看完这位大师的讲解,小的还是不理解,为什么第一次做的时后只会删去空值,而不是全部删除呢?

http://img1.sycdn.imooc.com//5f26cae200015e3611840406.jpg

正在回答

2 回答

<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);

      

  }

  

}


0 回复 有任何疑惑可以回复我~

原因是conten.childNodes一直在变
简单分解下:

第一次循环, i=0, 此时删除的是第一个#text(空文本节点),这应该没有疑问,删除后数组就变为:["html","#text","php","#text","javascript","#text","jquery","#text","java","#text"], length为10
那么第二次循环,i=1, 此时的childNodes[1]操作的就是第一次删除后得到的数组,那么当然是#text(原有的第二个空文本节点)
....
以此内推,现在就应该懂了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么一开始要按两下才开始删除节点,而且一下删除两个。后面就是按一下删除一个了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信