簡體   English   中英

如何使用Jquery在Javascript中聲明全局變量

[英]How to declare a global variable in Javascript using Jquery

我里面的js文件有一個具有特定算法的函數。

用於讀取xml文件並將數據轉換為變量名wordData。

函數內部具有以下代碼行:

var wordData = xhr.responseXML.getElementsByTagName (Node1);

我無法在函數外部或函數內部將變量“ wordData設置為全局”

function language() {
    lang = "heb";
    if (lang == "heb") {
        thisWord = wordArrayHeb[indeXML];
    }
    else {
        thisWord = wordArrayEng[indeXML];
    }
    alert("language thisWord:=" + thisWord);
}


function setWord() {

    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            if (xhr.responseXML) {
                var wordData = xhr.responseXML.getElementsByTagName(Node1);
                XMLength = wordData.length;
                for (i = 0; i < XMLength; i++) {
                    wordArrayHeb[i] = wordData[i].getElementsByTagName(Node2)[0].firstChild.nodeValue;
                    wordArrayEng[i] = wordData[i].getElementsByTagName(Node3)[0].firstChild.nodeValue;
                }
                language();

            }
        }
    }

}

變量thisWord是由不全局的可變wordData影響的。 在函數外,變量thisWord為空在函數內可以並且它具有值。

希望幫助。 謝謝!

只需聲明

var wordData;

在函數外部並將行更改為:

wordData = xhr.responseXML.getElementsByTagName (Node1);

因此刪除了var聲明。

您可以使用window對象在JS中的任何位置創建全局變量:

window['wordData'] = xhr.responseXML.getElementsByTagName(Node1);

要么

window.wordData = xhr.responseXML.getElementsByTagName(Node1);

然后可以全局訪問wordData。 這可能不是您問題的最佳解決方案,請考慮使用函數參數並返回值。

我認為將其設置為全局變量不是最佳選擇,如果您希望在函數語言中訪問wordData,則應將其作為參數傳遞,如下所示:

language(wordData);

在聲明函數language()時,只需使其接受參數即可:

function language(wordData) {
...
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM