2012-12-09 3 views
1

내 문제를 설명하는 방법조차 모르겠습니다. 이상한 제목이 나오는 곳입니다. ul은 아래 샘플과 같이 ul입니다. 각 jQuery : 개별적으로 리의 각 세트를 실행하십시오.

enter image description here

<ul class="event-items"> 
    <li class="year 2012"></li> 
    <li class="year 2011"></li> 
    <li class="year 2010"> 
     <ul> 
     <li></li> 
     <li></li> 
     <li></li> 
     </ul> 
    </li> 
<li class="year 2010"></li> 
… 
그래서 각 li.year 안에 여러 아이들과 함께 또 다른 <ul> 있습니다.

지금 내 문제 :

은 내가 개별적으로 eachli.year를 통해 실행할 수있는 방법을 생각해 본다.

$('ul.event-items li.year ul li').each(function(i) { 
    if (i % 4 == 0) $(this).addClass('clearLeft'); 
}); 

지금 내가이 일을하고있어

는 ... 그러나이 each 루프는 모든 <li>의를 통해 실행됩니다. 각각 li:year li을 어떻게 돌릴 수 있는지 궁금합니다. 이상한 소리로 들리니?

그래서 나는 실제로 내 i 카운트가 항상 별도로 각 내부 ul의 자식들에 대해 반복 각 li.year

답변

5

사용 중첩 루프 내부에 신선한 시작되도록 개별적으로 li.year의 각을 반복하고 싶지 :

$('ul.event-items li.year ul').each(function() { 
    $("li", this).each(function(i) { 
     if (i % 4 == 0) 
      $(this).addClass('clearLeft'); 
    }); 
}); 
+0

그게 전부입니다. 반드시 일해야한다. –

0

이것이 무슨 뜻입니까?

$('ul.event-items li.year').each(function(i) { 
    if (i % 4 == 0) $(this).find('ul li').addClass('clearLeft'); 
}); 
0

또는 .index()을 사용할 수도 있습니다.

$('ul.event-items li.year ul li').each(function() { 
    var $this = $(this); 
    if ($this.index() % 4 == 0) $this.addClass('clearLeft'); 
}); 

.index()는 부모, ul 관련하여 당신에게 각 li의 인덱스를 반환합니다.