如何保存$ this以用作父选择器

时间:2013-10-19 10:54:41

标签: javascript jquery ajax

我在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>并将其从表中删除。

2 个答案:

答案 0 :(得分: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.
    });
});

答案 1 :(得分: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
  }
});