我有一個隱藏了一些行的表。我確實展示了他們,但需求。用戶必須執行操作才能顯示這些行。每個隱藏的行都有帶TR標籤的class =「hideMe」。具有例外的備用行顏色
我想添加一個類交替行,以改變顏色,但只有那些總是可見的。通常很簡單,但我不確定如何合併隱藏的行異常。
$('.myTable tr:odd:not(hideMe)').addClass('altRow');
只能用CSS來完成,還是需要拋出一些jQuery魔法?
我有一個隱藏了一些行的表。我確實展示了他們,但需求。用戶必須執行操作才能顯示這些行。每個隱藏的行都有帶TR標籤的class =「hideMe」。具有例外的備用行顏色
我想添加一個類交替行,以改變顏色,但只有那些總是可見的。通常很簡單,但我不確定如何合併隱藏的行異常。
$('.myTable tr:odd:not(hideMe)').addClass('altRow');
只能用CSS來完成,還是需要拋出一些jQuery魔法?
其實,只需要調整 「一點點」 你的代碼,你會得到一個很好的解決方案:
$('.myTable tr:not(.hideMe):odd').addClass('altRow');
看到它在這裏工作:http://jsfiddle.net/HYHWJ/
另一個解決方案是:
$('.myTable tr:not(.hideMe)')
.removeClass('altRow')
.filter(':odd')
.addClass('altRow');
看到這裏工作在這裏:http://jsfiddle.net/r4N5g/
你必須訴諸於JavaScript的:
$('.myTable tr:not(.hideMe)').each(function (i) {
$(this).toggleClass('altRow', !! (i % 2));
});
這裏的小提琴:http://jsfiddle.net/PxT93/
對於a tiny increase in performance,你可以使用,而不是模的&
逐位運算符:
$('.myTable tr:not(.hideMe)').each(function (i) {
$(this).toggleClass('altRow', !! (i & 1));
});
在那裏拋出一個else removeClass來刪除先前是'altRow'但由於新顯示的行而不再是這樣的行。 :-) –
@MichaelMarr - 我假設OP知道如何做到這一點,但我將它添加到我的答案中。對你而言:) –
看,現在這個答案不是更加優雅嗎? :-) –
因此,當顯示「隱藏」行,你不希望他們有條紋? – thatidiotguy