2012-02-09 21 views
2

が含まれているdoesntのすべてのテーブルの別のテーブルの行にクラスを追加します。私がやりたいのは何jQueryの - 私はそうのようなテーブルを持っているクラス名

<table> 
<tr><td>Row 1</td></tr> 
<tr class="special"><td>Row 1</td></tr> 
<tr><td>Row 2</td></tr> 
<tr class="special"><td>Row 2</td></tr> 
<tr><td>Row 3</td></tr> 
<tr class="special"><td>Row 3</td></tr> 
</table> 

がいることを、すべての代替行のゼブラパターンを使用しています特別なクラスを含んでいません。私はこれを試しましたが、それは動作しません:

$("table tr:not(.special):nth-child(even)").addClass("alt-row"); 

これは依然としてすべての偶数行に追加されます。

答えて

6

次のことを試してみてください。

$("table tr").not('.special').filter(':even').addClass("alt-row"); 
+1

これはうまくいった!私は他の人が働いたと確信していますが、これは私が試みた最初のものです、ありがとう!私も答えが可能なときにこれを受け入れるよ! – CallumVass

0

これを試してください。

$('table tr').each(function(){ 
if($(this).hasClass('special') == false){$(this).addClass('alt-row');} 
}): 
+0

ない、非常に効率的。 jQueryメソッド(スカラー値を返すメソッドを除く)は、マッチしたセットのすべての要素に対して実行され(新しいマッチしたセットを返す)、一般に.each()を使用する必要はありません。これは最高の機能の1つです:連鎖性。 –

0
$("tr").toggleClass("special"); 
$(".special").addClass(".alt-row"); 
関連する問題