0

这么多的困惑,这么少的答案。我正在尝试遍历 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>
4

2 回答 2

0

childNodes属性包含DOM 中的所有节点,具体而言,它包括文本节点。你有 3 个 - 你的 div 中的换行符/换行符。

nodeType您可以使用该属性测试元素子项(参见例如此处1代表ELEMENT_NODE3代表TEXT_NODE)。

于 2013-07-15T14:43:45.673 回答
0

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

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

于 2013-07-15T18:04:01.973 回答