如此混乱,答案很少。我正在尝试遍历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>
答案 0 :(得分:0)
childNodes
属性包含DOM中的所有节点,具体意味着它包含文本节点。你有3个 - 你div中的换行符或换行符。
您可以使用nodeType
属性测试元素子元素(请参阅例如here; 1
代表ELEMENT_NODE
,3
代表TEXT_NODE
})。
答案 1 :(得分:0)
如果您使用像Firebug这样的工具并检查DOM本身,您将看到元素的所有子元素以及.children和.childNodes之间的区别。
通过在DOM中搜索,我发现为什么有这么多东西,起初看起来是相互重复的,但绝对不是。 Mozilla开发者网站developer.mozilla.org也提供了丰富的信息。