2011-06-01 44 views
5

交替在一個HTML表「可見」行我有這樣的代碼,做交替排在jQuery的一個html:我如何使用jQuery

function AlternateRowColors() { 

    $("table.altRow1 tr").filter(function() { 
    return true; 
    }).filter(':even').addClass('alt'​​​​​​); 

    $("tr.alt td[rowspan]").each(function() { 
    $(this).parent().nextAll().slice(0, this.rowSpan - 1).addClass('alt'); 
    }); 

    $('ins').css("background-color", "#cfc") 
} 

這個偉大的工程(隨意添加建議,如果你有什麼效率低於上述)

我現在的問題是我有隱藏一堆行的代碼(有關爲什麼這個問題並不真正相關的細節),主要的一點是我想要一個函數,可以對當前可見行執行替代行顏色。

我被簡單地增加一個類的某些行和它們調用.hide()這個類的隱藏行。

有任何建議,獲取替代行的顏色(如上面的代碼),但有它的可見行工作,所以無論什麼是隱藏的,該表總是排ALT着色方面看起來是正確的。

+0

你爲什麼filteri用一個函數返回true? – Andre 2011-06-02 00:05:21

+0

@Andre - 你能澄清這個問題嗎? – leora 2011-06-02 02:41:55

+0

你正在使用filter()傳遞一個剛返回true的函數。所以你沒有過濾。 – Andre 2011-06-02 13:25:35

回答

8

我結束了使用這裏面似乎工作:

function UpdateTable() { 
$('table.altRow1 tr:visible').removeClass('odd').filter(':odd').addClass('odd'); 

這個CSS:

.altRow1 tr { 
    background-color: #FFFFFF; 
} 
.altRow1 tr.odd { 
    background-color: #DEDEDE; 
} 
1

我建議你在你的類添加到隱藏的行代碼添加一個類的可見的行也是如此。假設你添加了名爲visible的類。那麼你可以申請你的交替行以上代碼的類可見:

$("table.altRow1 tr.visible").filter(function() { 

等。

1

你可能想,當你隱藏行再次調用此函數,以便它可以重新計算奇數和偶數行。您可以使用未選擇您tablerows只得到了可見行,像這樣:

$('table.altRow1 tr:not(.hidden)') 
-1

鏈的選擇:

$('table tr:visible:even').addClass('alt');