在ajax调用给出null之后,对象是Jquery

时间:2011-05-19 10:31:21

标签: jquery ajax object null this

我正在拨打电话,这将转到服务器电话。

$(this).click(function(){
   alert($(this).html()); //this is giving value
   var urlLink = someURL;
   var data = "id=" + "123";
   $.ajax({
        url : urlLink,
    data : data,
    cache: false,
    success : function(resp) {
      alert($(this).html()); //this is giving null
    }
   });
});

一旦成功,如果我提醒相同的给予null。可以任何一次请一个想法,出了什么问题。

2 个答案:

答案 0 :(得分:2)

来自jQuery documentation

  

这个参考内容   callbacks是上下文中的对象   选项传递给$ .ajax中的   设置;如果未指定上下文,   这是对Ajax的引用   设置本身。

设置ajax对象的context选项,或将对象保存在回调函数范围之外的变量中。

$(this).click(function(){
   var $obj = $(this);
   alert($obj.html()); //this is giving value
   var urlLink = someURL;
   var data = "id=" + "123";
   $.ajax({
        url : urlLink,
    data : data,
    cache: false,
    success : function(resp) {
      alert($obj.html()); //this will give you the value too
    }
   });
});

答案 1 :(得分:0)

首先,$(this)函数中success语句的范围与AJAX调用返回的数据有关。

您的第一个$(this)语句引用了被点击的元素。

尝试将成功校准更改为以下内容,以查看已提醒的返回数据:

success : function(resp) {
    alert(resp);
}

如果仍然显示空值,则在AJAX调用的服务器端执行的代码可能存在潜在问题。