我想通過AJAX調用成功的數據迭代。這些數據,在控制檯登錄後看起來是這樣的:迭代通過jQuery的對象數組
[Object, Object]
0: Object
messages: Array[0]
sid: 534
__proto__: Object
1: Object
messages: Array[0]
sid: 535
我使用的JavaScript是這樣的:
function startMsgCheck() {
msgCheck = setInterval(function() {
$.ajax({
url: '/sepanel/chat/check_for_msg',
type:'POST',
dataType: "json",
success: function(data) {
console.log(data);
$.each([data], function(i, val){
var SID = data[i].sid
if (data[i].messages.message_id == $('#chat_message_ID_' + SID).val()) {
return false;
}
else {
var buildMsg = '<p><b>' + data[i].messages.name + '</b>(' + data[i].messages.time_stamp + ')<b>:</b> ' + data[i].messages.message + '</p>'
$('#chat_messageID_' + SID).val(data[i].messages.message_id).text();
$(buildMsg).appendTo("#tab-" + SID);
$("#tab-" + SID).prop({ scrollTop: $("#tab-" + SID).prop("scrollHeight") });
if (data.name == data[i].messages.agent_name){
return false;
}
else {
$('#li_' + SID).removeClass('active');
$('#li_' + SID).removeClass('inactive');
$('#li_' + SID).addClass('notify');
}
}
});
}
});
}, 1000);
}
我遇到的問題是,這只是正常工作在第一對象陣列。我可以訪問[0]對象的值,但不能通過[1](或[2],[3]等 - 當這些對象存在時)。
我可能會對這是一個數組感到困惑,數據是否真的回到了對象的對象?我應該使用$。每個都應該這是一個for循環?如果它應該是for循環我將如何實現?我不確定我做錯了什麼,所以如果任何人都可以引導我走向正確的方向,我將不勝感激。
你的代碼塊有點搞砸了,它不包括最後一行。 – DrCord
您正在從控制檯輸出遍歷此數組:'[data.index]' - 但返回的JSON對象(它看起來是一個包含兩個對象的數組)中沒有「index」屬性。 – Pointy
我會說同Pointy一樣。或者你使用'each(data,'或者像這樣讀'data.index [i]',其中一個應該可以工作 – DontVoteMeDown