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

前端之家收集整理的这篇文章主要介绍了使用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;
}

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

猜你在找的jQuery相关文章