出於某種原因,我的價值不被存儲在陣列中:的Javascript:數組
var req = new Array();
$.get('./ajax/get_cat_info.php?cid=' +cid, function(data, textStatus) {
var count = 0;
$.each(data, function(key, val) {
$('#' + key).show();
if(val == 1) {
req[count] = key;
count = count + 1;
//var arLen=req.length;
//alert('l: ' + arLen); // this works though
}
});
}, 'json');
var arLen=req.length;
alert('l: ' + arLen);
我得到警告「1:0」結尾。如果我在IF語句中取消對線路警報的註釋,它會對每個警報發出警報,然後仍然警報0.
嘗試'req.push(key)'而不是'req [count] = key;'? –
'$ .get'語句下面的代碼立即執行,ergo,**在回調函數之前執行,因爲回調是異步的。你的數組是OK的,但是在回調完成之前你不能使用它。順便說一句,這是一個常見的錯誤。 –
如果您將警報轉移到每個回調之後,它就會起作用。 – numbers1311407