问答详情
源自:9-14 删除节点removeChild()

请问这个循环什么意思?

为什么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;
      }
  }


提问者:李白并不白 2017-02-18 12:16

个回答

  • 秦家小小神
    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;就可以了