jQuery遍历

时间:2009-06-26 09:01:37

标签: javascript jquery html

我的页面有这种设计。

<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();

但它不起作用。请帮忙。 TIA。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

你知道,ID必须是唯一的..所以我建议将所有id更改为class。

我认为parrent的语法应该是:

$('#master:parent');