Javascript 我可以使用带有节点列表的For循环吗?
基本上,我有一些HTML代码,这是一个树,我要遍历它的节点列表,并将某些Javascript 我可以使用带有节点列表的For循环吗?,javascript,html,nodelist,Javascript,Html,Nodelist,基本上,我有一些HTML代码,这是一个树,我要遍历它的节点列表,并将某些类分配给节点(如果它们有子节点),下面是一个片段: <li id='test' class="parentNode"> <button class="customer-btn button"><a href='#'>Customer 6</a></button> <ul> <li> <a href
类
分配给节点(如果它们有子节点),下面是一个片段:
<li id='test' class="parentNode">
<button class="customer-btn button"><a href='#'>Customer 6</a></button>
<ul>
<li>
<a href='#'>Customer A</a>
</li>
</ul>
</li>
<li class="parentNode">
<button class="customer-btn button"><a href='#'>Customer 7</a></button>
<ul>
<li>
<a href='#'> Customer A</a>
</li>
</ul>
</li>
-
-
这是我的Javascript:
parent_list = document.getElementsByTagName("LI");
var i;
$(document).ready(function() {
for (i=0; i < parent_list.length; i++){
children = $(i).find('LI');
document.getElementById('check').innerHTML = children;
}
});
parent_list=document.getElementsByTagName(“LI”);
var i;
$(文档).ready(函数(){
对于(i=0;i
对于循环,我返回的[object object]
,最好的方法是什么?
您可以对任何内容使用for循环,但您的代码不正确…将子元素分配给innerHTML不是兼容的分配,在循环中执行此操作只会导致元素“check”被分配多次,而不是添加 如果您使用的是jQuery,请使用:
$('#check').append(children);
因为您使用的是jQuery,所以不需要for循环
$('li').each(function(index, element){
if($(element).children().length > 0){
$(element).addClass('myClass')
}
})
您不需要jQuery,它只会降低脚本速度并添加不必要的依赖项。要回答您的问题“我可以将for循环与节点列表一起使用吗?”:可以,因为节点列表具有
length
属性,可以像数组一样索引。您的答案不符合OP的标准:如果节点有子节点,则将某些类指定给节点“”请改为考虑此样式规则“根据你的链接,CSS规则基本上没有浏览器支持,所以应该考虑多大程度的CSS规则?谢谢,这应该可以很好地工作,至少我离它不远了。”。而且,CSS功能将是一个上帝-send@squint因为这个答案在将来仍然会打开,而且看起来像是:has()
将被添加到规范中,最终我希望我的答案是未来的证明!:D“…最终将添加到规范中”最好祈祷好运
$('#check').append(children);
$('li').each(function(index, element){
if($(element).children().length > 0){
$(element).addClass('myClass')
}
})