2009-08-11 9 views
16

私は3つの異なる方法でスタイルを設定したい要素のリストを持っています。n回ごとにaddClass

すべての3番目のリストアイテムがリスト全体で同じクラスになるようにします。例えば

<li class="A">Some Content</li> 
<li class="B">Some Content</li> 
<li class="C">Some Content</li> 
<li class="A">Some Content</li> 
<li class="B">Some Content</li> 
<li class="C">Some Content</li> 
<li class="A">Some Content</li> 
<li class="B">Some Content</li> 
<li class="C">Some Content</li> 

私は2を行うことができます。奇数/偶数が、3でそれを行う方法?

答えて

45

$("ul li:nth-child(3n+1)").addClass("A") 
$("ul li:nth-child(3n+2)").addClass("B") 
$("ul li:nth-child(3n)").addClass("C") 
を試してみてください、それはきれいにするために、それを統合すること自由に感じ、私はセレクタを露出させたかったです。

+2

これを実用的なソリューションにするには、$( 'ul li:nth – shuckster

+0

@brownstone - 編集を参照してください、私は彼の全面的な懸念に対処するために変更しました(でも、長持ち) – Marc

+1

ありがとうMarc。これはまさに私です – davebowker

2

私はこのようなものをお勧めします:

var i = 0; 
$("li").each(function() { 
    var newClass = 'A'; 
    if (i % 3 == 1) newClass = 'B'; 
    if (i % 3 == 2) newClass = 'C'; 
    $(this).addClass(newClass); 
}); 
+2

これは機能しません...最初の行を削除し、 "i" in .... each(function(i)....を追加してください。 – ggzone

関連する問題