2011-02-15 93 views
1
<tr step="step2" optional="true"><td>Gender</td></tr> 
<tr step="step2" optional="true"> 
    <td> 
     <asp:RadioButtonList ID="rblGender" runat="server" RepeatDirection="Horizontal"> 
      <asp:ListItem Text="Female" Value="0"></asp:ListItem> 
      <asp:ListItem Text="Male" Value="1"></asp:ListItem> 
     </asp:RadioButtonList> 
    </td> 
</tr> 

兩者的最初隱藏TR和當條件滿足我想要顯示的單選按鈕,列表和報頭,我必須同時顯示TR的添加父的jQuery選擇

我有一個參考rblGender。我如何選擇所有其他元素?

$("#rblGender").parent().parent().prev()只選擇第一個tr。我必須逐個添加每個元素嗎?或者有沒有辦法一次添加整個鏈?

+1

您是否考慮過提供TRs ID或常見的虛擬CSS類,以便您可以選擇兩者? – Lazarus 2011-02-15 12:43:25

+0

這樣我就不得不爲頁面上的所有類似控件提供id或css類。然後硬編碼的id或類。費利克斯解決方案以我想要的方式工作。 – shashi 2011-02-15 13:32:27

回答

6

我真的不明白你的頭是什麼意思,但我假設你想顯示兩行。您可以使用.andSelf

將堆棧中的上一組元素添加到當前集。

$("#rblGender").closest('tr').prev().andSelf() 

您還應該使用closest()代替parent()鏈。它使它對結構變化(以及更易讀的imho)更加強大。

+0

+1:我不知道這個! (`.andSelf`) – 2011-02-15 12:47:34

1

如何將tr元素包裝到tbody元素中,然後您只需導航到(並隱藏/顯示)單個元素?

這樣會更加靈活,因爲它可以允許儘可能多的行同時隱藏/顯示。

當然,您將需要添加一些tbody元素到表格的其他行,但這不會使標記以任何方式不正確。