<script> //在外部定义几个变量 var test = ''; $.get('xxxx',xxxx,function(ret){ //ajax获取的数据 //我想在这里改变变量test的值,但不知怎么改变外部变量的值,怎么办??? test = xxxx; }); //外部再输出test alert(test); </script>
请问各位我如何才能实现想要的效果 菜鸟一枚,勿喷~
认证0级讲师
把alert(test) 放到回调里。现在的写法,是先执行 alert(test) ajax请求成功后,再执行回调修改变量的值。
alert(test)
异步没办法改变哦 要用同步的才可以
$.ajax( type:'GET', async:false, url:'XXXXXX' success:function(data){ //这里就可以改变test的值
});
ajax叫做异步请求,就好比另外一个进程。你alert在正常的进程流里面,执行的时候test还没改变呢。 如果你的需求是,get到数据更新数据然后alert,那么你就把alert放在callback里面。
楼上都说的比较清楚了,执行的步骤应该是 先是
var test = ''
然后再是
最后才是你的get 你在get的回调里面给test赋值 在上一步你是看不到改变的
把
alert(test)
放到回调里。现在的写法,是先执行alert(test)
ajax请求成功后,再执行回调修改变量的值。异步没办法改变哦
要用同步的才可以
});
ajax叫做异步请求,就好比另外一个进程。你alert在正常的进程流里面,执行的时候test还没改变呢。
如果你的需求是,get到数据更新数据然后alert,那么你就把alert放在callback里面。
楼上都说的比较清楚了,执行的步骤应该是 先是
然后再是
最后才是你的get
你在get的回调里面给test赋值
在上一步你是看不到改变的