Jquery 在$.get函数外使用变量

Jquery 在$.get函数外使用变量,jquery,json,Jquery,Json,在$.get函数外使用变量时遇到问题,找不到该变量,脚本停止 我能做什么 $.get("../ajax.php", function (data) { var json = JSON.parse(data); test = json['jquery']['test']; }); alert(test) 更新:(这解决了我的问题) 我使用$.get获取json。并将其传递给我的函数,json将能够稍后在脚本中获得 $.get("../ajax.php", function (d

在$.get函数外使用变量时遇到问题,找不到该变量,脚本停止

我能做什么

$.get("../ajax.php", function (data) {
    var json = JSON.parse(data);
    test = json['jquery']['test'];
});

alert(test)
更新:(这解决了我的问题) 我使用$.get获取json。并将其传递给我的函数,json将能够稍后在脚本中获得

$.get("../ajax.php", function (data) {
function(data) {                    
    loadApp(data);
});

function loadApp(data) {    
    json = JSON.parse(data);                
}

由于这是一个异步调用,所有处理都必须在回调函数中进行。将您的
警报(测试)
放在回调函数中

编辑:

$.get("../ajax.php", function (data) {
    var json = JSON.parse(data);
    test = json['jquery']['test'];

    alert(test); // Needs to be processed in this scope
});

这是因为JavaScript处理器逐行读取、检测并发送ajax调用,然后跳转到
警报
,该警报将尝试警报一个不存在的变量。即使你宣布它不会起作用;由于AJAX返回是异步的,因此将与其他代码并行执行。

请在提问之前搜索。这已经被问了很多次了。因为
test
在本地范围内。首先在全局范围内声明它。我不认为这是一个坏问题,我只找到了“困难的方法”来做它。在函数之外如何轻松地使用它们,看不到真正的逻辑。请阅读此文以澄清所有问题@Kim没有办法在函数之外使用它。任何依赖于AJAX请求结果的代码都必须放在回调中。