2

页面上有很多表格。我想在某个数据之后添加带有现有数据的新行tr。所以我有一张桌子:

        <table>
            <tr>
                <th>...</th>
                <td>...</td>
            </tr>
        </table>
        <p id="add-tr">[add]</p>

当我单击 to 时[add],我想添加一个tr包含现有元素th的新td元素。我找到了最后一张桌子:

$('#add-tr').on('click',function(){
    $(this).prev('table')...;
    });

(用 hide() 函数检查)下一步做什么?试过:

$(this).prev('table').closest('tr').clone();

但是没有效果!

我在stackoverflow的第一个问题!所以不要太苛刻,谢谢!

4

3 回答 3

5

您应该使用findorchildren方法并追加行,closest方法选择元素的最近父级。

var $table = $(this).prev('table');
$table.find('tr:first').clone().appendTo($table);
于 2012-12-19T21:27:44.060 回答
1

你真的很接近,只需要使用 .find() 而不是 .closest() 选择内部的 tr,然后选择 .appendTo() 的位置:

$('#add-tr').on('click',function(){
    $(this).prev('table').find('tr').first().clone().appendTo('table');
});​
于 2012-12-19T21:29:28.817 回答
0

我认为你已经克隆了它,但现在你需要实际附加它:

var myRow = $(this).prev('table').closest('tr').clone();

$(this).prev('table').closest('tr').append(myRow);

或类似的

于 2012-12-19T21:28:18.217 回答