1

私は自分の問題を説明する方法すら知りません-それが奇妙なタイトルの由来です。下のサンプルのように別のulラッピングがあります。ul

<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>

今私の問題:

どうすればeach li.year個別に実行できるのだろうか。

今私はこれをやっています…</p>

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

ただし、このeachループはALLを通過し<li>ます。どうすればそれぞれをli:year li個別に実行できるのだろうか。変に聞こえますよね?

だから私は実際にそれぞれをli.year個別にループしたいので、私のiカウントは常にそれぞれの中で新鮮に始まりますli.year

4

3 に答える 3

5

ulネストされたループを使用して、各内部の子を個別に反復処理します。

$('ul.event-items li.year ul').each(function() {
    $("li", this).each(function(i) {
        if (i % 4 == 0) 
            $(this).addClass('clearLeft');
    });
});
于 2012-12-09T19:13:44.997 に答える
0

これはあなたが意味するものですか?

$('ul.event-items li.year').each(function(i) {
    if ( i % 4 == 0 ) $(this).find('ul li').addClass('clearLeft');
});
于 2012-12-09T19:14:04.343 に答える
0

または、 を使用することもできます.index()

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

.index()liは、親に関連するそれぞれのインデックスを返しますul

于 2012-12-09T19:23:51.050 に答える