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

时间:2013-07-15 14:37:01

标签: javascript dom

如此混乱,答案很少。我正在尝试遍历DOM,通过id查找特定节点,但是,此代码有几个问题,我没有解释。首先,childNodes列表的长度为'5'。两个“ul”的,两个“id”的,如果那些计算......还有一个是为了运气?

其次,它在if(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>

2 个答案:

答案 0 :(得分:0)

childNodes属性包含DOM中的所有节点,具体意味着它包含文本节点。你有3个 - 你div中的换行符或换行符。

您可以使用nodeType属性测试元素子元素(请参阅例如here; 1代表ELEMENT_NODE3代表TEXT_NODE })。

答案 1 :(得分:0)

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

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