Obejct 是 ajax 调用后的 Jquery 给出 null

发布于 2024-11-08 17:50:25 字数 407 浏览 0 评论 0原文

我正在通过点击进行呼叫,这将转到服务器呼叫。

$(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。任何人都可以提供一个想法,出了什么问题。

I am giving a call with click, and this will go to server call.

$(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
    }
   });
});

Once after success, if i alert the same giving null. could any once please give an idea, what's going wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

童话里做英雄 2024-11-15 17:50:25

来自 jQuery 文档

所有中的 this 引用
回调是上下文中的对象
选项传递给 $.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
    }
   });
});

From the jQuery documentation:

The this reference within all
callbacks is the object in the context
option passed to $.ajax in the
settings; if context is not specified,
this is a reference to the Ajax
settings themselves.

Either set the context option of the ajax object, or save the object in a variable outside the scope of the callback function.

$(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
    }
   });
});
不离久伴 2024-11-15 17:50:25

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

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

尝试将 success cal 更改为以下内容以查看返回的警报数据:

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

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

First of all the scope of the $(this) statement in your success function relates to the data returned from the AJAX call.

Your first $(this) statement refers to the element which was clicked on.

Try changing the success cal to the below to see the returned data alerted:

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

If this still shows an empty value there may be an underlying issue with the code executed on the server-side of the AJAX call.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文