2011-02-15 136 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元素到表格的其他行,但这不会使标记以任何方式不正确。