0

我有一个代码应该复制我指定的行。我的表是动态制作的,所以我无法定义 ID。我希望能够单击指定行上的按钮并找到最接近的 tr 进行复制。

应该复制的代码是:

 function cloneRow()
 {
   var row = $(this).closest('tr'); // find row to copy
   var table = document.getElementById("ScannedItems");
   var clone = row.cloneNode(true); // copy children too
   clone.id = "newID";
   table.appendChild(clone);
 }

我需要更改var row = $(this).closest('tr');为其他内容,但我不知道将其更改为什么,以便我可以tra href单击的位置获得最接近的值。

或者只是复制单击 a 的同一行。

a href 看起来像这样

<a onclick='cloneRow();'><span class='glyphicon glyphicon-plus' style='padding-right:15px;'>

我知道这个问题没有很好地解释......我制作了一个 jsFiddle 来参考我正在谈论的内容。http://jsfiddle.net/KSCLC/9/

4

2 回答 2

1

嗯..在你的函数的上下文中,this代表Window 你需要做这样的事情:

HTML

<a href="#" id="copynode">copynode</a>

Javascript

$('#copynode').on('click', function(e) { // attach the event click on the element #copynode
 $(this).closest('tr').clone().appendTo('#ScannedItems'); // find the closest tr, clone it, and append it on the ScannedItems table
 e.preventDefault();
});
于 2013-09-29T21:16:02.957 回答
1

这是一个小提琴:http: //jsfiddle.net/ankr/N6ykr/

这是代码

Javascript

var $table = $('#myTable');

$table.on('click', 'a.clone', function (e) {
    e.preventDefault();
    var $tr = $(this).closest('tr').clone();

    // Do stuff to $tr here

    $table.append($tr);
});

$table.on('click', 'a.remove', function (e) {
    e.preventDefault();
    $(this).closest('tr').remove()
});

HTML

<table id="myTable">
    <tr>
        <td><a href="#" class="clone">Clone 1</a></td>
        <td><a href="#" class="remove">Remove 1</a></td>
    </tr>
    <tr>
        <td><a href="#" class="clone">Clone 2</a></td>
        <td><a href="#" class="remove">Remove 2</a></td>
    </tr>
    <tr>
        <td><a href="#" class="clone">Clone 3</a></td>
        <td><a href="#" class="remove">Remove 3</a></td>
    </tr>
</table>
于 2013-09-29T21:23:53.420 回答