我有一个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