js全局变量问题

<script>
//在外部定义几个变量
var test = '';
$.get('xxxx',xxxx,function(ret){
    //ajax获取的数据
    //我想在这里改变变量test的值,但不知怎么改变外部变量的值,怎么办???
    test = xxxx;    
});
//外部再输出test
alert(test);
</script>

请问各位我如何才能实现想要的效果
菜鸟一枚,勿喷~

阅读 4k
4 个回答

alert(test) 放到回调里。现在的写法,是先执行 alert(test) ajax请求成功后,再执行回调修改变量的值。

异步没办法改变哦
要用同步的才可以

$.ajax(
    type:'GET',
    async:false,
    url:'XXXXXX'
    success:function(data){

    //这里就可以改变test的值

});

ajax叫做异步请求,就好比另外一个进程。你alert在正常的进程流里面,执行的时候test还没改变呢。
如果你的需求是,get到数据更新数据然后alert,那么你就把alert放在callback里面。

楼上都说的比较清楚了,执行的步骤应该是 先是

var test = ''

然后再是

alert(test)

最后才是你的get
你在get的回调里面给test赋值
在上一步你是看不到改变的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题