[英]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.