我有一个javascript全局变量的问题,即我有全局变量niz_opcija2
,我在一个函数中初始化它,但在其他函数中,它说它是未定义的..
这是我的javascript:
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);
}
}
(在这段代码中我试图使用$ .get将数据作为json获取,并将其添加到选择列表select3
和selectKateg
,并且ucitaj2()函数正在获取数据,但是ucitajKategorije是不是,但我认为它应该工作相同?)有谁知道可能是什么问题?提前感谢!
答案 0 :(得分:0)
问题正在发生,因为niz_opcija2
的初始化发生在异步函数调用中。
ucitaj2
会在$.get("/manager/categoriesArticle"
返回之前立即从服务器返回数据。
更改为在get
成功功能中调用它:
var niz_opcija2=[];
window.onload=function(){
ucitaj2();
}
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);
}
//Call it here
ucitajKategorije();
});
}