我有一个代码应该复制我指定的行。我的表是动态制作的,所以我无法定义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');
更改为其他内容,但我不知道要将其更改为什么,以便我可以从点击的tr
中获得最接近的a href
。< / p>
或者只是复制点击a的同一行。
a href看起来像这样
<a onclick='cloneRow();'><span class='glyphicon glyphicon-plus' style='padding-right:15px;'>
我知道这个问题没有得到很好的解释......我为了讨论我所说的内容而制作了一个jsFiddle。 http://jsfiddle.net/KSCLC/9/
答案 0 :(得分: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();
});
答案 1 :(得分: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>