我的客户数据格式如下:
<table id="t01">
<tr>
<th>HEAD 1</th>
<th>HEAD 2</th>
<th>HEAD 3</th>
</tr>
<tr id="Grp1">
<td>Grp1 data</td>
<td>Grp1 data</td>
<td>Grp1 data</td>
</tr>
<tr>
<td>Grp1 data</td>
<td>Grp1 data</td>
<td>Grp1 data</td>
</tr>
<tr>
<td>Grp1 data</td>
<td>Grp1 data</td>
<td>Grp1 data</td>
</tr>
<tr id="Grp2">
<td>Grp2 data</td>
<td>Grp2 data</td>
<td>Grp2 data</td>
</tr>
<tr>
<td>Grp2 data</td>
<td>Grp2 data</td>
<td>Grp2 data</td>
</tr>
<tr>
<td>Grp2 data</td>
<td>Grp2 data</td>
<td>Grp2 data</td>
</tr>
<tr id="Grp3">
<td>Grp3 data</td>
<td>Grp3 data</td>
<td>Grp3 data</td>
</tr>
<tr>
<td>Grp3 data</td>
<td>Grp3 data</td>
<td>Grp3 data</td>
</tr>
<tr>
<td>Grp3 data</td>
<td>Grp3 data</td>
<td>Grp3 data</td>
</tr>...
</table>
必须根据某些条件上下移动行。这是我的js代码:
if(val == valX){
$("#Grp2").after($("#Grp1"))// This will hold only one tr.
// move all Grp1 data rows and set after Grp2 data
}
if(val == valy){
// move all Grp2 data rows on the top of all the rows
}
if(val == valz){
// move all Grp3 data rows on the top of all the rows
}...
因为我的问题是:
combined = $("#Grp1") + $("#Grp1").next() + $("#Grp1").next();
注意 - 由于Html结构也用于其他目的。因为我无法改变HTML中的任何结构
答案 0 :(得分:6)
您可以使用.add
向jQuery集合中添加元素:
var combined = $("#Grp1").add($("#Grp1").nextUntil("#Grp2"));
与.addBack
相同的方式:
var combined = $("#Grp1").nextUntil("#Grp2").addBack();