找到最后一个TR(组)

时间:2009-11-09 10:48:57

标签: jquery css-selectors

我有下表

<tr id="group_1>...</tr>
   <tr id="el">...</tr>
   <tr id="el">...<tr>
<tr id="group_2"></tr>
   <tr id="el">...</tr>
<tr id="group_1>...</tr>
   <tr id="el">...</tr>
   <tr id="el">...<tr>

我需要找到每组的最后一个TR

$("tr#group_"+groupID).next("tr#el:last").after("ADD NEW TR");

它不适合我!!

我猜那是因为我为所有群体使用相同的身份。

任何人都可以帮助我。

由于

3 个答案:

答案 0 :(得分:6)

首先,ID必须是唯一的,因此在上述情况下,行为将不确定。

其次,这是对行进行分组的一种困难方法。请尝试使用TBODY元素&gt;

<tbody id="group_2">
  <tr>...</tr>
  <tr>...<tr>
</tbody>
<tbody id="group_2">
  <tr>...</tr>
</tbody>
<tbody id="group_3">
  <tr>...</tr>
  <tr>...<tr>
</tbody>

然后事情变得容易了:

$("#group_" + groupNum + " tr:last-child").after("add new tr");

事情是,你甚至不需要这样做(使用after())。使用append()

更容易
$("#group_" + groupNum).append("add new tr");

答案 1 :(得分:1)

您不能重复使用这样的ID。请尝试将其更改为类。

也可能值得在其中添加一些<tbody>

<tr id="group_1>...</tr>
<tbody id="group_1_tbody">
   <tr class="el">...</tr>
   <tr class="el">...<tr>
</tbody>
<tr id="group_2"></tr>
<tbody id="group_2_tbody">
   <tr class="el">...</tr>
</tbody>

然后你可以做

$('group_' + groupID + '_tbody tr:last')

甚至更容易:

$('group_' + groupID + '_tbody').append('NEW TR')

答案 2 :(得分:1)

ID在给定页面上必须是唯一的。当您通过ID识别元素时,您也不需要指定标记,因为ID是唯一的。

一个更简单的形式(一旦你摆脱那些重复的ID)将是:

$("#group_"+groupID).children("tr:last").after("ADD NEW TR");