2009-06-26 3 views
0

내 페이지가이 디자인을 가지고 있습니다.jQuery Traversing

<tr id="master"> 
<td id="row1"> <textbot> </td> 
<td id="row2"> <linkbutton> </td> 
</tr> 

링크 버튼의 동일한 TR onclick을 복제 중이며 현재 링크 버튼이 숨겨져 있습니다. 그래서 새로운 행이 생성 될 것입니다.

<tr id="master"> 
<td id="row1"> <textbot> </td> 
<td id="row2"> <linkbutton> </td> 
</tr> 
<tr id="master"> 
<td id="row1"> <textbot> </td> 
<td id="row2"> <linkbutton> </td> 
</tr> 
<tr id="master"> 
<td id="row1"> <textbot> </td> 
<td id="row2"> <linkbutton> </td> 
</tr> 

가 지금은 두 번째 행의 링크 버튼을 보여주고 싶은 배로 나는 복제 한 고려한다.

나는

$(this).parents('#master :last').prev().children('#row2).show(); 

하지만 그 작동하지 않습니다와 함께 노력하고 있습니다. 도움말 pls. TIA.

+0

"그러나 그것이 작동하지 않습니다"- 당신은 당신이 누군가를 원하는 경우 더 구체적 일 필요 당신에게 대답 해주세요. – gubby

+0

@musicfreak : 당신은 "오타"를 고쳐서는 안됩니다 - 그것은 그의 문제의 일부일 수 있으며 질문에 적절할 수 있습니다. –

답변

0

아시다시피 ID는 고유해야합니다. 따라서 모든 ID를 클래스로 변경하는 것이 좋습니다.

은 내가 parrent의 구문이해야한다고 생각 :

$('#master:parent'); 
4

ID가 문서에서 고유로되어 있기 때문에 당신은/ID가 요소를 복제해서는 안 수 없습니다. 브라우저가 행복하게 두 번 동일한 ID를 갖게하지만 Javascript와 jQuery는이를 용서하지 않으며 예상대로 작동하지 않습니다. 요소를 그룹화하는 올바른 방법은 클래스에 의한 것입니다.

이 당신의 코드를 전환 그래서 경우 :

<tr class="master"> 
    <td class="row1"> <textbot> </td> 
    <td class="row2"> <linkbutton> </td> 
</tr> 

당신의 선택은 다음과 같습니다

$('tr.master').eq(1).find('td.row2').show();