2010-09-23 75 views
-1

我有一個表格佈局,我用作導航欄。它就像一個樹形菜單,其中一些行是標題下面的標題。它是這樣一個小(有些標籤可讀性刪除):JQuery導航表。顯示和隱藏每隔一行?

<table id = "QLM"> 

<tbody> 
<tr id = "QLM0"> 
<tr style = "display: table-row"> 
<tr id = "QLM2"> 
<tr style = "display: table-row"> 
<tr id = "QLM3"> 
<tr style = "display: table-row"> 
<tr id = "QLM4"> 
<tr style = "display: table-row"> 
</tbody> 

</table> 

每一行中包含內部另一個表的<td>

我有一些jQuery,當你點擊上面的行時,顯示和隱藏行(即單擊帶ID的隱藏/顯示帶有樣式標籤的行)。

唯一的一點是,我希望它顯示一個(id)行時,其他(樣式行)全部隱藏。

這是我的jQuery至今:

menuHd.click(function() { 
    var styleElm = $(this).find("td:last"); 
    var nextTR = $(this).next("tr:not([id])"); 
    if (nextTR.is(':visible')) { 
    nextTR.hide(); 
    styleElm.css(cssClosed); 
    } else { 
    nextTR.show(); 
    styleElm.css(cssOpen); 
    } 
    }); 

回答

0

您可以使用:even選擇選擇ID'd行和:odd選擇器選擇的樣式行,因爲他們總是互相之間進行切換。

(編輯:即使是第一位的,因爲選擇是從零開始的,根據documentation

+0

是的,我看到了,但我不太清楚如何使用它。在上面的例子中,它會是這樣的:$(「this」)。find(「tr:odd」)。hide(); – 2010-09-23 14:24:42

0

試試這個

$("tr:not([id])").hide(); 

nextTR.show(); 
在我們的代碼

。這應該解決你的問題,並會顯示當前行之前隱藏所有其他行沒有id屬性。沒有測試雖然