克隆/删除TR Row - 几乎正常工作

时间:2015-03-02 09:38:35

标签: jquery clone

我正在使用我在fiddle中找到的代码,它几乎完全符合我的需要。

该代码允许我克隆另一个TR,并可以选择删除克隆的行。

我遇到的问题是我不想删除所有行。

如何阻止脚本删除第一行?

我试过了:

var numItems = $('.DeleteBoxRow').length
if (numItems >1) {
 $(this).closest('tr').remove();
}

但这似乎有点受伤。

我也发现如果我添加然后删除行,我会遇到一个问题,我无法再添加。

任何建议如何排序? 感谢

1 个答案:

答案 0 :(得分:2)

由于使用event delegation处理动态元素,因此使用.delegate()因为在使用jQuery 1.6时使用jQuery> = 1.7使用.on()

$('#BoxTable').delegate('.DeleteBoxRow:not(#TemplateRow .DeleteBoxRow)', 'click', function() {

        $(this).closest('tr').remove();
});

还需要更改克隆行的id,因为元素的ID必须是唯一的。同样在上面的选择器中,我们在.DeleteBoxRow元素中排除了TemplateRow元素,所以如果有任何其他行具有该ID,那么删除也无法正常工作

var $newRow = $('#TemplateRow').clone(true).removeAttr('id');

演示:Fiddle