在jQuery / javascript中定义一个全局变量

时间:2014-07-24 17:55:13

标签: javascript jquery

在JavaScript / jQuery中定义一个全局变量,稍后在脚本中获取它。

但奇怪的是它没有用。

在控制台中打印getResult给我undefined

但在尝试在指定值之后打印getResult时,它会给我准确的值。

其实我在底部需要ajax结果..我怎么能这样做..?

var getResult;
$.getJSON(url, function(data) {
    //JS statement to Ajax
    //JS statement to Ajax  
    $.ajax({
        type: "post",
        dataType: "json",
        url: urlTo,
        data: dataSend,
        success: function (result, status) {
                getResult = result; 
                console.log(getResult); // getResult is working here
        }
    });

    //JS statement to Ajax
    //JS statement to Ajax  
    $.ajax({
        type: "post",
        dataType: "json",
        url: urlTo2,
        data: dataSend2,
        success: function (result2, status) {

        }
    });

    console.log(getResult); // getResult is not working here. Giving " undefined" result here.
});

3 个答案:

答案 0 :(得分:4)

JavaScript 同步 AJAX 异步

因此,底部的console.log(getResult);在执行以下AJAX之前触发:

success: function (result, status) {
    getResult = result; 
    console.log(getResult); // getResult is working here
} 

您可以为getResult提供默认值并自行测试。

答案 1 :(得分:4)

这是因为在AJAX调用完成之前没有定义getResult,它只是声明

由于AJAX是异步的,因此您的第一个控制台日志就是:

var getResult;
console.log(getResult);

你能在这里给我getResult的价值吗?不,因为它未定义(实际上它的值是undefined shhh

答案 2 :(得分:1)

在第二次AJAX调用中,您未指定导致getResult = result2;值的"undefined"

另外,将全局var = getResult;放在getJSON函数中。