3

私は以下のマークアップを持っています、

<ul>
<li>1</li> //light BG
<li>2</li>
<li>3</li>
<li>4</li> //light BG
<li>5</li>
<li>6</li>
......
</ul>

の位置ごとに、クラスdarkとを追加したい。lightli

  • 最初liにすべきことlight
  • 2番目、3番目はdark
  • 4番目、5番目のはずですlight
  • 同じパターン……
4

3 に答える 3

3
$('ul li:nth-child(3n-2)').addClass('light');

$('ul li::not(:nth-child(3n-2))').addClass('dark');

デモ

于 2012-06-08T06:58:33.003 に答える
1

モジュロ演算子で遊んでみてください。楽しいです!

$( 'li' ).each( function() {
    // Cache some variables
    var el = $( this ),
        index = el.index();

    if ( index % 3 === 0 || index % 3 === 1 ) {
        el.addClass( 'light' );
    }
    else {
        el.addClass( 'dark' );
    }
} );

PS:モジュロ演算を手伝ってくれたZetaに感謝します /o/

于 2012-06-08T07:03:50.790 に答える
0

これはあなたが求めているパターンですか?

http://jsfiddle.net/rCkQV/

他のものが暗い場合、それらはすべてのLIに設定されたクラスを継承することができ、ライトはこれをオーバーライドします。

$("ul li:nth-child(4n),ul li:nth-child(4n+1)").addClass("light");
于 2012-06-08T07:00:14.407 に答える