我有一個javascript全局變量的問題,即我有全局變量niz_opcija2
,我初始化它在一個函數中,但在其他函數中,它說它是未定義的.. 這是我的javascript:Javascript「無法讀取未定義的屬性長度」bug
var niz_opcija2=[];
window.onload=function(){
ucitaj2();
ucitajKategorije();
}
function ucitaj2(){
$.get("/manager/categoriesArticle",function(data){
niz_opcija2.push(data);
console.log(data);
var select=document.getElementById("select3");
for(var i=0;i<niz_opcija2[0].length;i++){
var option=document.createElement("option");
option.value=niz_opcija2[0][i].categoryCode;
option.innerHTML=niz_opcija2[0][i].name;
option.id=niz_opcija2[0][i].name;
select.appendChild(option);
}
});
}
function ucitajKategorije(){
for(var i=0;i<niz_opcija2[0].length;i++){
var select=document.getElementById("selectKateg");
var option=document.createElement("option");
option.value=niz_opcija2[0][i].name;
option.innerHTML=niz_opcija2[0][i].name;
option.id=select.length;
select.appendChild(option);
}
}
(在此代碼我試圖讓數據使用$不用彷徨JSON,並將其添加到選擇列表select3
和selectKateg
和ucitaj2()函數獲取數據,但ucitajKategorije是不是,但我認爲它應該工作是一樣的?)有誰知道可能是什麼問題?提前致謝!
最有可能的事實,你是異步分配值到您的變量,而你做你的其他功能運行,您的變量仍然沒有數據在裏面。 – Lixus
'$ .get'是異步的,這意味着在第二個方法被調用時,它不會完成獲取數據和填充列表。我建議查看Promise或回調 – Hamms
從'.length'驗證中移除'[0]'。它給你這個錯誤,因爲它沒有存儲在_position 0_中。 – doutriforce