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

请问这个循环什么意思?

为什么nodeType!=1就continue?

var content=document.getElementById("content");
  // 在此完成该函数
  var ch=content.childNodes;
  for(var i=0;i<ch.length;i++)
  {
      if(ch[i].nodeType!=1)
      {
          continue;
      }
      else
      {
          var  x=content.removeChild(ch[i]);
          x=null;
      }
  }


正在回答

1 回答

前面讲过空白节点的问题了,最好再看看!

因为非IE浏览器会把每个<div>和<h1>、</h1><h1>、</h1>和</div>之间的换行、空格及文本看作一个“空白节点”,nodeType!=1就continue是为了去除这些空白节点。

另外,你这个方法还是有错的!for循环条件中ch.length是不断变化的,因为你一直在删除节点,会出现点一下按钮“删不净”的问题。【看问答那篇置顶】把var len=ch.length;放在for循环外面,循环条件改为i<len;就可以了

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

秦家小小神

我说漏了最重要的部分了!var x=content.removeChild(ch[i]);里的ch[i]要改成[0]~~ch数组长度一直在变短,必须从第一个开始删除!
2017-02-18 回复 有任何疑惑可以回复我~
#2

秦家小小神 回复 秦家小小神

这种情况下,continue那部分就没有意义了。。。。。。
2017-02-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问这个循环什么意思?

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