0

我在 jQuery 中使用按钮值来擦除一行。按钮值是 rowID。成功后,我需要一种调用方法$(this).closest('tr').hide() 来删除该行。

无论如何要做到这一点而不用<tr>特定的行ID标记每个?

好的,这里有一些代码:

var rowID = $( this ).attr('value'); 

var data = { 
    'action': 'my_delete_row_action', 
    'id': rowID
} 

$(this)是一个设置为 的<button>元素。value$row[id]

删除该行后,我需要一种方法:

$(this).closest('tr').hide()- 这将使用当前活动的按钮,抓住父级<tr>并将其从表中删除。

4

2 回答 2

1

我假设您正在使用 ajax 在服务器端删除实体,并且您希望在成功时删除客户端上的特定行:

$("table").on("click", "button.delete", function(){
    var $button = $(this), //save reference to the button clicked
        rowId= = $button.attr("value"),
        data = {"id": rowId, ...};

    $.ajax(...).done(function(){
        $button.closest("tr").hide(); //or remove or whatever.
    });
});
于 2013-10-19T11:12:25.253 回答
0

另一种方法是将按钮(或其他任何东西)绑定为上下文:

$.ajax({
  // All the other AJAX options
  context: $(this),  // Magic key to bind the async callback into the original context
  success: function() {
    // Now $(this) is your button
  }
});
于 2013-10-19T11:23:49.563 回答