Javascript更新和访问函数外的变量

Javascript update and access variable outside function

本文关键字:变量 函数 访问 更新 Javascript      更新时间:2023-09-26

我一定做错了什么。我希望下面的代码能更新并访问全局变量"gvar",但它没有。请问我做错了什么?

<script type="text/javascript">
    var gvar;
    $(function () {                     
        $(document).ready(function () {
            $.getJSON("json.php", function (myData) {
                $.each(myData.tag, function (t, myData) {
                    if(myData.myId != null) {
                        gvar = myData.myId;
                    }
                });
                return false;
            })
        });
    });
</script>
<script type="text/javascript">
    alert(gvar);
</script>

gvar只有在dom准备好后才会填充。但是,一旦解析了该部分代码,就会立即执行警报。尝试将警报放在ready()函数的末尾。

@Yoshi还有另一个我刚刚错过的优点:变量的填充甚至会延迟,直到请求成功执行。为了测试它,您可以设置几秒钟的超时,然后提醒变量。到那时,请求应该已经结束,变量将具有一个可以发出警报的值。但这只是为了测试变量是否在全局范围内工作,因为当在回调内部发出警报时,变量当然已经设置在警报的正上方。)