今天在写jquery的ajax方法的时候想获取回调函数中的返回值,但是怎么也获取不到,因为是jquery的方法中嵌套jquery的方法,导致作用域也不好使变量传递数据。
比如像如下的代码:
$("talbe>td").each(function(){
.........
$.get('xxxx',function(data){
return xxxxx;
});
.........
});
在这种情况下想获取$.get方法中回调函数的return的话就很困难,其实我们可以换种方法来解决这个问题,为何不把data的数据提交到回调函数以外的地方进行处理,这样就会避免内层的数据无法向外层传递。
查看jquery手册发现有一种比较好的解决方案:
var str = $.ajax({url:xxxx,type:'GET',async:false,cache:false}).responseText;
这样就可以通过ajax来获取返回值,注意这里使用了async:false jQuery中的解释是:
默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。