jquery中ajax如何返回值到上层函数里?

functionload_val(){$.getJSON("test.php",function(data){//如何把这里的值通过loload_val函数返回出去?})... function load_val()
{
$.getJSON("test.php",function(data){
// 如何把这里的值通过loload_val函数返回出去?
});
})
}
展开
 我来答
huibo865686
2013-11-26 · TA获得超过916个赞
知道小有建树答主
回答量:325
采纳率:80%
帮助的人:264万
展开全部

这个涉及到js的异步执行了,程序本身是同步执行的,到了getJSON这里的时候,这个函数是异步的,而 load_val这个函数是同步的,你需要这样来异步返回这个值

function load_val(callback){//定义一个回调函数
    $.getJSON('test.php' , function(dat){
        callback(data);//将返回结果当作参数返回
    });
}

load_val(function(data){
    alert(data);//这里可以得到值
});

//否则的话你需要这样用同步ajax来实现了

function load_val2(){
    var result;
    $.ajax({
        dataType:'json',
        url : 'test.php',
        async:false,//这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待
                    //数据加载完成后才继续执行
        success : function(data){
            result = data;
        }
    });
    return result;
}

var data = load_val();//这里可以直接拿到数据
lkiarest
2013-11-26 · TA获得超过543个赞
知道小有建树答主
回答量:761
采纳率:100%
帮助的人:411万
展开全部
function load_val(callback)
 {
  $.getJSON("test.php",function(data){
        callback(data);
   });
  })
 }
 
 function test() {
     load_val(function(data) {
         alert(data);
     });
 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友147e3a0
2013-11-26 · TA获得超过703个赞
知道小有建树答主
回答量:855
采纳率:100%
帮助的人:357万
展开全部
// 如何把这里的值通过load_val函数返回出去?
把这一句改成
return data;

然后在需要调用这个函数的地方写
var str=load_val();
这样,str的值就是val的值了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式