如何使用jquery从动态生成表中删除行?

时间:2011-05-09 07:25:18

标签: jquery

我的代码使用jquery动态创建表。我想在表中添加删除功能。因此,当点击删除图像时,该行应该被删除。但是当表是静态的时,删除工作正常。 这是我的代码:

createTable: function () {
    var lastRow = $('#TblInvoiceList tr:last');
    var newRow = $('<tr>');
    newRow.append($('<td>').text($('input.Name').val()), $('<td>').text($('input.GrossAmount').val()));
    newRow.append("<td class='center'><img class='ImgDelete' src='image/ButtonDelete.png' /></td>");
    lastRow.before(newRow);}

这是删除功能:

$('#TblInvoiceList td img.ImgDelete').click(function () {
    alert("hi");
    $(this).parent().parent().remove();
});

2 个答案:

答案 0 :(得分:2)

尝试将live作为

  

.live()方法能够影响   尚未添加的元素   通过使用事件到DOM   委派:

$('#TblInvoiceList td img.ImgDelete').live('click',function () {
    alert("hi");
    $(this).parent().parent().remove();
});

答案 1 :(得分:2)

使用委托比动态添加内容更有效:

$('#TblInvoiceList').delegate('img.ImgDelete', 'click', function(e) {
     alert("hi");
     $(this).parent().parent().remove();
});