search

Home  >  Q&A  >  body text

javascript - js全局变量问题

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

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

PHP中文网PHP中文网2896 days ago354

reply all(4)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 14:42:31

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

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:42:31

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

    $.ajax(
        type:'GET',
        async:false,
        url:'XXXXXX'
        success:function(data){
    
        //这里就可以改变test的值
    

    });

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:42:31

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

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 14:42:31

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

    var test = ''
    

    然后再是

    alert(test)
    

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

    reply
    0
  • Cancelreply