如何用jquery交换tr的位置

时间:2010-11-01 07:17:49

标签: jquery

我无法访问服务器端以更改代码。

我有以下输出。第二个tr表示税,第三个表示总和。

现在我要交换它们。首先显示总和然后用jquery征税。

每次税和金额的价值都不同。

但税收总是会有'Hvorav mva'的文字。 utgjør'和Sum将有Sum的文本,但第一个tr也有Sum。

提前致谢。

    <TR>
    <TD CLASS="td-menu" COLSPAN="7">Sum</TD>
    </TR>
    <TR>
    <TD CLASS="td-main" COLSPAN="4" ALIGN="right">         
          Hvorav mva. utgjør:
    </TD>
    <TD CLASS="td-main" ALIGN="right">551,20</TD>
    <TD CLASS="td-main" ALIGN="right">  </TD>
    </TR>

    <TR>
    <TD CLASS="td-main" COLSPAN="3"> &nbsp; </TD>
    <TD CLASS="td-main" ALIGN="right"> Sum : </TD>
    <TD CLASS="td-main" ALIGN="right">            
      <FONT CLASS="font-pris-uextra">2 756,00</FONT>
    </TD>
    <TD CLASS="td-main" ALIGN="right">
    </TD>
    </TR>

    <TR>
    <TD CLASS="tdmain-em" COLSPAN="7"> <BR> </TD>
   </TR>

1 个答案:

答案 0 :(得分:3)

一个快速的(确定有更好的方法来做到这一点 here is an example in jsbin

和代码:

$(document).ready(function(){
   var tax = $("td:contains('Hvorav mva. utgjør')").parent();
   var sum = $("td:contains('Sum')").parent();
   tax.insertAfter(sum);
   tax.remove();
});​

<强> [编辑]
错过了包含总和的第一个TD ...所以它工作但不如预期的那样(税收被插入后面的第二行而不是我们想要的总和之后)

so here is a better solution using the .td-main class on the items(the first row has the .td-menu class instead)

代码:

$(document).ready(function(){
    var tax = $("td.td-main:contains('Hvorav mva. utgjør')").parent();
    var sum = $("td.td-main:contains('Sum')").parent();
    tax.remove().insertAfter(sum);
});​