[英]Detecting attributes of elements in the HTML DOM with javascript
如此混乱,答案如此之少。 我正在尝试遍历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>
childNodes
属性包含DOM中的所有节点,这特别意味着它包含文本节点。 您有3个-div中的换行符/换行符。
您可以使用nodeType
属性测试元素子级(请参见例如此处 ; 1
代表ELEMENT_NODE
, 3
代表TEXT_NODE
)。
如果使用Firebug之类的工具并检查DOM本身,则会看到一个元素的所有子元素以及.children和.childNodes之间的区别。
正是通过在DOM中四处寻找,我发现了为什么有那么多东西一开始看上去是彼此重复的,但绝对不是。 Mozilla开发人员站点developer.mozilla.org也是大量信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.