jQuery Traversing - PullRequest
       4

jQuery Traversing

0 голосов
/ 26 июня 2009

Моя страница имеет такой дизайн.

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

Я клонирую тот же самый клик 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>
<tr id="master">
<td id="row1"> <textbot> </td>
<td id="row2"> <linkbutton> </td>
</tr>

Теперь я хочу показать кнопку ссылки второго ряда.

Я пытаюсь с

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

Но это не работает. Помогите пожалуйста. ТИА.

Ответы [ 2 ]

4 голосов
/ 26 июня 2009

Вы не можете / не должны клонировать элементы, имеющие идентификаторы, потому что идентификаторы должны быть уникальными в документе. Хотя браузер с радостью предоставит вам один и тот же идентификатор дважды, Javascript и jQuery не прощают вас, и все будет работать не так, как ожидалось. Правильный способ группировки элементов - по классам.

Итак, если вы переключите свой код на это:

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

Ваш селектор может выглядеть так:

$('tr.master').eq(1).find('td.row2').show();
0 голосов
/ 26 июня 2009

вы знаете, идентификатор должен быть уникальным .. поэтому я рекомендую изменить все идентификаторы на класс.

Я думаю, что синтаксис для parrent должен:

$('#master:parent');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...