当我在我的jQuery函数(下面的示例)中使用下面的行$(this)时,它运行得很好。
$(this).closest('.item').children('h3').children('a').text('UPDATED');
但是,在同一个函数中,我尝试在成功函数中移动它:$ .ajax的区域,它不再有效。我已经检查过成功功能是否有警报。
有没有办法在$ .ajax中保留$(this)的范围?
提前感谢任何建议。
问题区域:
success : function(msg){
$(this).closest('.item').children('h3').children('a').text('UPDATED');
},
答案 0 :(得分:5)
是的,请使用上下文:
$.ajax({
success: function () {
$(this)...
},
context: this // or whatever this is
})
在页面下方查看context选项大约14%。
答案 1 :(得分:2)
您正在搜索错误的$(this)
(在错误的上下文中)。做点什么
$(".button").click(function() {
var $this = $(this);
$.ajax({
success: function() {
// $this is $(this) you need
$this.closest('.item').children('h3').children('a').text('UPDATED');
}
});
});
答案 2 :(得分:0)
您只需将$(this)
分配给变量即可。
var $myThis = $(this);
// ajax stuff
success: function(msg){
$myThis.closest('.item').children('h3').children('a').text('UPDATED');
}