簡體   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