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

时间:2015-05-05 00:03:02

标签: javascript jquery html css algorithm

我尝试做的事情基本上是通过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 
});

但我不知道如何构建内循环。这是可能的,如果是的话,我应该使用什么工具?

4 个答案:

答案 0 :(得分:3)

0内,.each将是迭代的当前元素。然后,您可以使用this查找其中的元素:

$(this).find()

答案 1 :(得分:1)

您可以使用hasClass和CSS选择器来获取所有直接孩子<li> s)

$('ul.some-class > li').each(function() {
     if ($(this).hasClass('some-class')) {
         //Do something
     } else {
         //Do something else
     }
});

答案 2 :(得分:0)

遍历所有<li>并使用hasClass()查看它们是否适合您想要的课程并做出相应的反应

$('.some-ul').children().each(function(){
   // "this" is current li
   if ( $(this).hasClass('some-li') ){
       $(this).doSomeClassThing();
   } else {
        $(this).doNoClassThing();
   }    
});

一次通过,你就完成了

答案 3 :(得分:0)

每次调用的回调都将索引和元素作为参数。

这样你可以

$('ul.some-class').each(function(i, elt) { 
     $(elt, 'li.some-class').each ...
 });

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