2011-02-15 5 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

+0

그런 식으로 페이지의 모든 유사한 컨트롤에 ID 또는 CSS 클래스를 제공해야합니다. 그런 다음 id 또는 클래스를 하드 코딩하십시오. Felix 솔루션은 내가 원하는 방식으로 작동합니다. – shashi

답변

6

헤더가 무엇을 의미하는지 정말 이해하지 못했지만 두 행을 모두 표시하려고한다고 가정합니다. .andSelf :

스택의 이전 요소 세트를 현재 세트에 추가하십시오.

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

또한 대신 parent() 체인의 closest()를 사용해야합니다. 구조 변경 (그리고 더 읽기 쉬운 imho)에 대해 더 강력하게 만듭니다.

+0

+1 : 나는 이것에 대해 몰랐다! ('.andSelf') –

+0

Yup .. 완벽하게 작동합니다 ... and 자신에 대해 몰랐습니다 ... – shashi

+0

jQuery 1.8에서, andSelf()는 ['addBack()']로 대체되었습니다. http://api.jquery.com/addBack/). –

1

tbody 요소에 tr 요소를 래핑하는 방법은 무엇입니까? 그러면 단일 요소로 이동 (숨기기/표시)하면됩니까?

동시에 숨기거나 표시 할 수있는 행을 허용하기 때문에 더욱 유연 해집니다.

물론 tbody 개의 요소를 표의 다른 행에 추가해야하지만 표식이 잘못 표시되는 것은 아닙니다.

+0

글쎄, 그것은 현명한 접근이지만 마크 업을 변경해야 할 것이다. Felix Kling의 솔루션이 더 간단합니다. – shashi