无法使用jQuery删除表格行

时间:2019-07-13 07:28:15

标签: javascript jquery

我想删除表行,数据从数据库中删除,但为什么不从html表中删除数据。 任何解决方案表示赞赏!

Book stock("...", &author, 4.99);

这是使用PHP生成的HTML表

 $('#datatables').on('click', '.delete_department', (e) => {
        var id = e.currentTarget.id;
        $.ajax({
            type: 'POST',
            url: BASE_URL + 'admin/delete_department',
            data: { id: id },
            success: (response) => {
                $('#datatables').closest('tr').remove();
            }
        });
    });

3 个答案:

答案 0 :(得分:1)

保存单击的按钮元素的引用,然后使用closest获取tr

$('#datatables').on('click', '.delete_department', function(e) {
    const that = $(this);
    var id = e.currentTarget.id;
    $.ajax({
        type: 'POST',
        url: BASE_URL + 'admin/delete_department',
        data: { id: id }, // or just use shorthand notation { id }
        success: (response) => {
            $(that).closest('tr').remove();
        }
    });
});

注意-使用function()而不是箭头功能来获取所单击元素的引用。

答案 1 :(得分:0)

尝试使用row().remove()

var datatable = $('#datatables').DataTable({ ... });

$('#datatables').on('click', '.delete_department', (e) => {
  var id = e.currentTarget.id;
  var tr = this;
  $.ajax({
    type: 'POST',
    url: BASE_URL + 'admin/delete_department',
    data: { id: id },
    success: (response) => {
      $('#datatables').closest('tr').remove();
      datatable.row( $(tr).parents('tr') ).remove().draw();
    }
  });
});

答案 2 :(得分:0)

让_this = $(this); 在上面声明 var id = e.currentTarget.id;

并在成功功能中设置在行下方 _this.parent('tr')。remove();

并将成功用作函数成功:函数(响应){