簡體   English   中英

如何使用JQuery嵌套for-each循環以獲取特定的li元素?

[英]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 
});

但我不知道如何構建內循環。 這是可能的,如果是這樣,我應該使用什么工具?

.eachthis將是迭代的當前元素。 然后,您可以使用$(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 ...
 });

https://api.jquery.com/jquery.each/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM