我有这个Ajax呼叫doop.php。
doop.php
function doop(){ var old = $(this).siblings('.old').html(); var new = $(this).siblings('.new').val(); $.ajax({ url: 'doop.php', type: 'POST', data: 'before=' + old + '&after=' + new, success: function(resp) { if(resp == 1) { $(this).siblings('.old').html(new); } } }); return false; }
我的问题是,$(this).siblings('.old').html(new);生产线没有按预期进行。
$(this).siblings('.old').html(new);
谢谢..所有有用的评论/答案都被投票了。
更新: 问题的一半似乎是范围(感谢帮助我阐明这一问题的答案),但另一半是我试图以同步方式使用ajax。我创建了一个新帖子
首先new是一个保留字。您需要重命名该变量。
new
要回答您的问题,是的,您需要保存this在成功回调之外的变量中,并在成功处理程序代码中引用它:
this
var that = this; $.ajax({ // ... success: function(resp) { if(resp == 1) { $(that).siblings('.old').html($new); } } })
这称为关闭。