jQuery – ‘this’选择器在回调函数内不起作用

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

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

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

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

$(this)存在于click eventfunction(data) {不是click事件rather callback function 。 因此将$(this)保存在某个变量中,例如供以后使用。

试试这个:

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