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

删除全部子节点中关于循环i取值的疑问?

删除全部子节点中关于循环i取值的疑问?

__67 2016-12-14 15:53:38
       for(var i=content.childNodes.length; i>-1;i--){            content.removeChild(content.lastChild);        }请问各位为什么i的取值是content.childNodes.length或者是content.childNodes-1或者是content.childNodes-2这三个值都能实现一键清除呢?当i的值是content.childNodes-3开始,就不行了;
查看完整描述

1 回答

?
慕工程8612042

TA贡献3条经验 获得超1个赞

假设子元素有5个的话: i = content.childNodes-3   的时候 for循环只会执行4次,少了一次 自然不会删除干净;

content.childNodes-2 的时候 刚好执行5次,其余两种情况执行次数都大于5 也能够都删除;

建议写法:

 for(var i = content.childNodes.length ; i > 0 ; i--){

            content.removeChild(content.lastChild);

  }


查看完整回答
反对 回复 2016-12-17
  • __67
    __67
    感谢您的回答!我刚刚测试了,按照您的写法,i的值是content.childNodes.length-1也是可以全部清除的。测试了半天我终于明白了,是因为元素之间有空的文本节点,所以有5个子节点的话,删4次及4次以上就都能全部删除。
  • 1 回答
  • 0 关注
  • 1117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信