jQuery - 'this'选择器在回调函数中不起作用

f1n*_*1nn 6 jquery this jquery-selectors

可能重复:
$(this)在函数中不起作用

我正在写jQuery删除代码的帖子,删除本身是通过post-request to backeds,服务器返回200后,我想在客户端删除这篇文章.

$('.delete-post').click(function() {
    $.post($(this).attr('href'), {}, function(data) {
        $(this).closest('.post').remove();
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

但是,我注意到内部函数(数据){...)选择器'this'不起作用.我需要$('.delete-post')使用类'.post' 删除最接近div的div.如何管理这个问题?谢谢!

Adi*_*dil 13

$(this)存在于click eventfunction(data) {不是click事件的一部分rather callback function.因此将$(this)保存在某个变量中以that供以后使用.

试试这个:

$('.delete-post').click(function(e) {
    e.preventDefault();
    var that = $(this);
    $.post(that.attr('href'), { }, function(data) {
        // $(this).closest('.post').remove();
        that.closest('.post').remove();
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 你应该解释为什么`this`在回调中有不同的值. (2认同)