jQuery-';这';选择器没有';不能在回调函数中工作

jQuery-';这';选择器没有';不能在回调函数中工作,jquery,jquery-selectors,this,Jquery,Jquery Selectors,This,可能重复: 我正在jQuery中编写帖子删除代码,删除本身是通过对backeds的post请求进行的,在服务器返回200后,我想在客户端删除这篇帖子 $('.delete-post').click(function() { $.post($(this).attr('href'), {}, function(data) { $(this).closest('.post').remove(); }); return false; }); 但是,我注意到内部

可能重复:

我正在jQuery中编写帖子删除代码,删除本身是通过对backeds的post请求进行的,在服务器返回200后,我想在客户端删除这篇帖子

$('.delete-post').click(function() {
    $.post($(this).attr('href'), {}, function(data) {
        $(this).closest('.post').remove();
    });
    return false;
});
但是,我注意到内部函数(数据){…)选择器“this”不起作用。我需要用class.post删除最接近
$('.delete post')
div的函数。如何处理此问题?谢谢!

$(this)
存在于
单击事件中,但
函数(数据){
不是click事件
的一部分,而是回调函数
。因此,将$(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();
    });
});

你应该解释一下为什么
这个
在回调中有不同的值。我已经解释过谢谢你提醒我@jfriend00非常感谢,现在我知道了!简单明了)