[英]How do I do a nested for-each loop with JQuery to get specific li elements?
我正在尝试做的基本上是通过有组织的ul
<ul class="some-ul">
<li class="some-li"></li>
<li></li>
<li></li>
<li class="some-li"></li>
</ul>
<ul class="some-ul">
<li class="some-li"></li>
<li></li>
<li></li>
<li></li>
</ul>
<ul class="some-ul">
<li class="some-li"></li>
<li class="some-li"></li>
<li class="some-li"></li>
<li class="some-li"></li>
</ul>
和做的事情li
类第some-li
,并与别的东西li
没有该类秒。 所以,它等同于
$('ul.some-class li.some-class').each(function() {
// do something
});
$('ul.some-class li:not(.some-class)').each(function() {
// do something else
});
除了我想这样做
$('ul.some-class').each(function() {
// loop through the list elements of this list
});
但我不知道如何构建内循环。 这是可能的,如果是这样,我应该使用什么工具?
在.each
, this
将是迭代的当前元素。 然后,您可以使用$(this).find()
来查找其中的元素:
$('ul.some-ul').each(function(i, ul) {
$(ul).find("li").each(function(j, li) {
// Now you can use $(ul) and $(li) to refer to the list and item
if ($(li).hasClass('some-li')) {
...
}
});
});
您可以使用hasClass
和CSS选择器来获取所有直接子项( <li>
s) 。
$('ul.some-class > li').each(function() {
if ($(this).hasClass('some-class')) {
//Do something
} else {
//Do something else
}
});
循环遍历所有<li>
并使用hasClass()
来查看它们是否适合您想要的类,并做出相应的反应
$('.some-ul').children().each(function(){
// "this" is current li
if ( $(this).hasClass('some-li') ){
$(this).doSomeClassThing();
} else {
$(this).doNoClassThing();
}
});
一次通过,你就完成了
每次调用的回调都将索引和元素作为参数。
这样你就可以
$('ul.some-class').each(function(i, elt) {
$(elt, 'li.some-class').each ...
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.