在下面的代碼中,我將這個值分配給來自JSON的變量,這個var tag = data[j]['text'];
和我輸出它與這console.log(tag);
(用於測試)哪個起作用。值不會推到數組
我嘗試將值推入與tags.push(tag);
數組,但它不會工作!
爲什麼這些值不會進入數組?我只是想將tag
的內容放入數組中...
function GetAvailableTags() {
var url = '/TextCodes/TextCodes?key=';
var tagGroups = [];
$('.ui-autocomplete-input').each(function() {
var key = $(this).attr('id');
var tags = [];
//console.log(key);
$.getJSON(url + key, function (data) {
for (var j = 0, len = data.length; j < len; j++) {
var tag = data[j]['text'];
console.log(tag);
tags.push(tag);
}
});
console.log(tags.length);
for (var k = 0, len = tags.length; k < len; k++) {
console.log(tags[k]);
}
});
}
感謝您的幫助。
您必須推遲使用JSON調用的響應,直到調用實際完成; JavaScript程序不會等待響應。使用Deferreds或成功處理程序,並將代碼放在那裏。見http://learn.jquery.com/ajax/ – Matt 2013-03-17 16:35:08
啊不是範圍抱歉,錯過了一個括號... – Maresh 2013-03-17 16:36:10
您在ajax響應填滿之前記錄數組。請參閱[如何從函數返回AJAX調用的響應?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call-from-a功能) – Bergi 2013-03-17 16:36:14