本文介绍了将行放入变量中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下格式的客户资料:

 < table id =t01> 
< tr>
< th> HEAD 1< / th>
HEAD 2< th>
< th> HEAD 3< / th>
< / tr>
< tr id =Grp1>
< td> Grp1资料< / td>
< td> Grp1资料< / td>
< td> Grp1资料< / td>
< / tr>
< tr>
< td> Grp1资料< / td>
< td> Grp1资料< / td>
< td> Grp1资料< / td>
< / tr>
< tr>
< td> Grp1资料< / td>
< td> Grp1资料< / td>
< td> Grp1资料< / td>
< / tr>
< tr id =Grp2>
< td> Grp2资料< / td>
< td> Grp2资料< / td>
< td> Grp2资料< / td>
< / tr>
< tr>
< td> Grp2资料< / td>
< td> Grp2资料< / td>
< td> Grp2资料< / td>
< / tr>
< tr>
< td> Grp2资料< / td>
< td> Grp2资料< / td>
< td> Grp2资料< / td>
< / tr>
< tr id =Grp3>
< td> Grp3资料< / td>
< td> Grp3资料< / td>
< td> Grp3资料< / td>
< / tr>
< tr>
< td> Grp3资料< / td>
< td> Grp3资料< / td>
< td> Grp3资料< / td>
< / tr>
< tr>
< td> Grp3资料< / td>
< td> Grp3资料< / td>
< td> Grp3资料< / td>
< / tr> ...
< / table>

并且必须上下移动行取决于某些条件。这是我的js代码:

  if(val == valX){
$(#Grp2)。 after($(#Grp1))//这将只保存一个tr。
//移动所有Grp1数据行并在Grp2数据之后设置
}
if(val == valy){

//移动所有Grp2数据行所有行的顶部
}

if(val == valz){
//移动所有行的顶部的所有Grp3数据行
}。 ..

因为我的问题是:


  • 我怎样才能一次移动所有三行?

  • 如何在一个像 combined = $(#Grp1)+ $(#Grp1)。next()+ $(#Grp1)。next();



注意 - 由于Html结构也用于其他目的。由于我无法更改HTML中的任何结构 您可以使用将元素添加到jQuery集合中:

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

一种等效的方式是使用 .addBack

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


I have our client data in following format :

<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>

And have to move the rows up and down depends upon some condition. Here is my js code:

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
}...

Since my question is:

  • How can I move all three rows at a time up or down OR
  • How can I get group of 3 rows in a variable like combined = $("#Grp1") + $("#Grp1").next() + $("#Grp1").next();

Note- As the Html structure is also used for some other purposes. Since I can not change any structure in the HTML

解决方案

You can use .add to add elements to a jQuery collection:

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

An equivalent way is with .addBack:

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

这篇关于将行放入变量中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-24 14:48