繁体   English   中英

在jQuery / javascript中定义全局变量

[英]Define a Global variable in jQuery/javascript

在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.
});

JavaScript同步的 AJAX异步的

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

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

您可以给getResult一个默认值并自己进行测试。

这是因为只有在AJAX调用完成后才定义getResult ,才声明它。

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

var getResult;
console.log(getResult);

您可以在这里给我getResult的值吗? 不,因为它是未定义的(实际上它的值是undefinedshhh

在第二个AJAX调用中,您未分配getResult = result2; 导致"undefined"值。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM