请问这个循环什么意思?

来源:9-14 删除节点removeChild()

李白并不白

2017-02-18 12:16

为什么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回答

  • 秦家小小神
    2017-02-18 23:15:39

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

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

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

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

    这种情况下,continue那部分就没有意义了。。。。。。

    2017-02-18 23:21:39

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468195 学习 · 21891 问题

查看课程

相似问题