用javascript检测HTML DOM中元素的属性

用javascript检测HTML DOM中元素的属性,javascript,dom,Javascript,Dom,如此多的困惑,如此少的答案。我试图在DOM中循环,通过id查找特定的节点,但是,这段代码有几个问题,对此我没有解释。首先,childNodes列表的长度显示为“5”。两个ul,两个id,如果算上的话…一个是运气 其次,如果(y[i].hasAttribute('id')==true),它将在处消亡。Firebug说这不是一个函数。我没有理由不相信,但不知道为什么不相信 谢谢你的帮助 <div id="list"> <ul id="first"></ul> &l

如此多的困惑,如此少的答案。我试图在DOM中循环,通过id查找特定的节点,但是,这段代码有几个问题,对此我没有解释。首先,childNodes列表的长度显示为“5”。两个ul,两个id,如果算上的话…一个是运气

其次,如果(y[i].hasAttribute('id')==true),它将在
处消亡。Firebug说这不是一个函数。我没有理由不相信,但不知道为什么不相信

谢谢你的帮助

<div id="list">
<ul id="first"></ul>
<ul  id="second"></ul>
</div>
    <script>
        var comments=document.getElementById('list')
                        var y=comments.childNodes;
                        var count=y.length
                        for(i=0;i<count;i++)
                        {
                            document.write(y.length);
                            if(y[i].hasAttribute('id')===true)
                            { document.write('here!');}

                        }
    </script>

      var comments=document.getElementById('列表') var y=comments.childNodes; 变量计数=y.length
      对于(i=0;i,
      childNodes
      属性包含DOM中的所有节点,具体地说,它包括文本节点。您有3个节点-div中的换行符/换行符


      您可以使用
      nodeType
      属性来测试元素子元素(例如,
      1
      表示
      元素节点
      3
      表示
      文本节点
      ).

      如果您使用像Firebug这样的工具并检查DOM本身,您将看到元素的所有子元素以及.childrends和.childNodes之间的差异


      正是通过在DOM中四处搜寻,我发现了为什么有这么多的东西起初看起来是彼此重复的,但绝对不是。Mozilla开发者网站developer.Mozilla.org也提供了丰富的信息。

      也许可以试试:
      if(y[I]。nodeType==1&&y[I]。hasAttribute('id')==true){
      这样你只检查
      元素
      节点。或者,使用
      var y=comments.children;
      只循环
      元素
      nodex.ah,我明白了,所以这有点类似于必须检查xml,所以你不必阅读空白?非常感谢你的链接!我永远不会解决这个问题。