Jquery appendTo特定的表ID不起作用

时间:2015-03-31 18:42:52

标签: jquery

我的桌子里面有一个<tr>和6个<td>。我使用一些代码来删除tr,然后在最后一个td之后放置一个新的tr标记。

<table id="datatable" class="datatable_class">
<tbody>
    <tr>
        <td id="td1">title 1</td>
        <td id="td2">contents 1 need to go to new tr</td>
        <td id="td3">title 2</td>
        <td id="td4">contents 2 need to go to new tr</td>
        <td id="td5">title 3</td>
        <td id="td6">contents 3 need to go to new tr</td>
    </tr>
</tbody>

<table id="datatable" class="datatable_class">
<tbody>
        <td id="td1">title 1</td>
        <td id="td2">contents 1 need to go to new tr</td>
        <td id="td3">title 2</td>
        <td id="td4">contents 2 need to go to new tr</td>
        <td id="td5">title 3</td>
        <td id="td6">contents 3 need to go to new tr</td>
    <tr></tr>
</tbody>

我现在想要实现的是.appendTo()我新创建的tr的所有奇怪的td。这很好但现在的问题是我在<body>中有另一张桌子,当我开始移动td时,我也将td&#39; s从我的另一张桌子移到这个新的tr。

我尝试使用它来过滤而没有运气

$("#datatable > tbody > td.odd").appendTo('#fix_name').css( "background-color", "red" );

Here is a Fiddle

2 个答案:

答案 0 :(得分:2)

以下是如何移动所需的表格单元格而不影响第二个表格的方法。更确切地说,您可以使用表格ID代替table:first - #datatable td:odd是一个更精确的选择器。

$('#simple_button').click(function () { 
    $( '<tr id="fix_name"/>' ).insertAfter( $("#td6").closest('tr') );

    $( 'table:first td:odd' ).appendTo('#fix_name').css( "background-color", "red" );
});

DEMO

答案 1 :(得分:1)

道歉,如果这不是你所希望的 - 我对你为什么要删除TR感到有点困惑。但是,如果我理解你想要做什么,我认为你可以通过改变这个来轻松解决你的问题:

$("#datatable > tbody > td.odd").appendTo('#fix_name').css( "background-color", "red" );

到此:

$( '#datatable td:odd' ).appendTo('#fix_name').css( "background-color", "red" );

(将选择器更改为(“#datatable td:odd”))。您可以使用此edit of your fiddle查看结果,我认为这样做符合您的要求。

希望这对你有用;否则,我建议重新考虑删除。请注意,向第一行(或选择第一行的任何其他机制,例如id)添加$('#data-table tbody tr:nth-child(1)')也可以正常工作并保持正确的格式。您可以查看示例here