我有以下表结构。
<table>
<tr>
<td><a href="#"></td>
</tr>
</table>
当我点击<a>
时,我想在点击<tr>
的{{1}}旁边添加新的<tr>
。
结果将是:
<a>
答案 0 :(得分:53)
示例:
$('a').bind('click', function(){
$('<tr><td>new td</td></tr>').insertAfter($(this).closest('tr'));
});
如果要创建克隆,请使用:
$('a').live('click', function(){
var $this = $(this),
$parentTR = $this.closest('tr');
$parentTR.clone().insertAfter($parentTR);
});
示例链接:http://www.jsfiddle.net/7A6MQ/
基本上,您从tr element
(包括子节点)创建副本,并在该元素之后插入该副本。因此,您需要.live
绑定以确保新创建的a
元素也会调用该单击处理程序。
答案 1 :(得分:7)
另外,你可以写:
$('a').bind('click', function () {
$(this).closest('tr').after('<tr><td>new td<td></tr>');
});
没有那么多差异,但看起来更具可读性。
答案 2 :(得分:1)
这是代码。如果有任何问题,请检查并告诉我。
function AddRaw(obj){
var $this = obj;
$parentTR = $this.closest('tr');
$parentTR.clone().insertAfter($parentTR);
}