[英]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.