组变量中的行

时间:2014-12-29 11:23:30

标签: jquery html

我的客户数据格式如下:

<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();
  • 等变量中获取3行组

注意 - 由于Html结构也用于其他目的。因为我无法改变HTML中的任何结构

1 个答案:

答案 0 :(得分:6)

您可以使用.add向jQuery集合中添加元素:

var combined = $("#Grp1").add($("#Grp1").nextUntil("#Grp2"));

.addBack相同的方式:

var combined = $("#Grp1").nextUntil("#Grp2").addBack();