微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用jQuery在函数中返回$.get数据

我试图调用一个包含jQuery代码函数。我想让这个函数返回jQuery语句的结果。它不工作,我想弄清楚为什么。
function showGetResult (name) {
    var scriptURL = "somefile.PHP?name=" + name;
    return $.get(scriptURL,{},function(data) { return data; });
}

alert (showGetResult("John"));

警报显示“[object XMLHttpRequest]”。但是,如果我自己运行jQuery语句,在函数之外,它工作正常 – > $ .get(scriptURL,{},function(data){alert(data);})

我想能够重新使用这个代码,将它放在一个函数里面返回$ .get数据。我在这里犯什么基本的错误

解决方法

你有几个不同的错误。首先,$ .get不返回回调函数的返回值。它返回XHR对象。第二,get函数不是同步的,它是异步的,因此showGetResult可能在get完成之前返回。第三,您不能将回调内部的内容返回到外部范围。然而,您可以绑定外部范围中的一个变量,并在回调中设置它。

要获得所需的功能,您需要使用$ .ajax并将async选项设置为false。然后,您可以在外部范围中定义一个变量,并在ajax回调中分配该变量,从函数返回此变量。

function showGetResult( name )
{
     var result = null;
     var scriptUrl = "somefile.PHP?name=" + name;
     $.ajax({
        url: scriptUrl,type: 'get',dataType: 'html',async: false,success: function(data) {
            result = data;
        } 
     });
     return result;
}

你可能会更好地服务,但是,弄清楚如何做你想要的回调函数本身,而不是从异步更改为同步调用

原文地址:https://www.jb51.cc/jquery/184112.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐