我试图调用一个包含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不返回回调函数的返回值。它返回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 举报,一经查实,本站将立刻删除。