Javascript 使用appendTo从另一个容器中移动元素

Javascript 使用appendTo从另一个容器中移动元素,javascript,jquery,Javascript,Jquery,我已经试了将近一个小时了,但我似乎不知道我在哪里犯了错误。我正在尝试将“total_row”移动到“tfoot”元素。这样看起来应该是这样的 <tfoot> <tr> <td>Total</td> <td>250</td> <td>100</td> <td>350</td> </tr>

我已经试了将近一个小时了,但我似乎不知道我在哪里犯了错误。我正在尝试将“total_row”移动到“tfoot”元素。这样看起来应该是这样的

<tfoot>
    <tr>
        <td>Total</td>
        <td>250</td>
        <td>100</td>
        <td>350</td>
    </tr>
<tfoot>

全部的
250
100
350
我的代码:

$cur_table = $("#wrap_table");

$total_row = $cur_table.find("tr:not(:eq(0)) td:contains('Total')").parent();

$total_row.parent().after('<tfoot></tfoot>');

$total_row.appendTo($cur_table.find("tfoot"));
$cur_table=$(“#wrap_table”);
$total_row=$cur_table.find(“tr:not(:eq(0))td:contains('total')”)。parent();
$total_row.parent()在(“”)之后;
$total_row.appendTo($cur_table.find(“tfoot”));

谢谢大家!

试试这个:找到第一个包含“Total”(删除单引号)的
td
,并附加到
tfoot

var $cur_table = $("#wrap_table");

var $total_row = $cur_table.find("td:contains(Total):first").closest('tr');

$total_row.appendTo($cur_table.find("tfoot"));

这里可能有更好的主意。您应该为总行设置一个类或id,以便标记如下所示:

<tr class="total-row">
    <td>Total</td>
    <td>250</td>
    <td>100</td>
    <td>350</td>
</tr>

全部的
250
100
350
那么javascript可以是:

var $curTable = $("#wrap_table");
var $totalRow = $curTable.find(".total-row");

$('<tfoot></tfoot>').insertAfter($totalRow.parent()).append($totalRow);
var$curTable=$(“#wrap_表”);
变量$totalRow=$curTable.find(“.totalRow”);
$(“”).insertAfter($totalRow.parent()).append($totalRow);
这种方法有巨大的好处。首先,JS代码不依赖于HTML中的文本。根据您的方法(通过单词“Total”选择),每次更改文本时都必须更改JavaScript。如果你本地化你的应用程序,它也将不起作用

更不用说,使用类名,用单独的样式为“Total row”设置样式要简单得多

$cur_table=$(“#wrap_table”);
$total_row=$cur_table.find(“tr:not(:eq(0))td:contains('total')”)。parent();
var$tfoot=$('').insertAfter($total_row.parent());
$total_row.appendTo($tfoot)
表格{
边界塌陷:塌陷
}
t车身{
背景色:红色;
}
t脚掌{
背景颜色:绿色;
}

测试
全部的
250
100
350

您是否有一个快速的JSFIDLE以便我们有一个“工作”的东西要看?感谢您指出这一点,但不幸的是,我无法更改DOM并在元素上添加类,因此我不得不采用这种crud方法。