2017-04-26 126 views
0

我想循環json數組對象的輸出並訪問其元素如何做到這一點? 那JSON陣列對象的輸出在其上進行查詢如何循環json對象數組jquery?

Object {0: Object, 1: Object, 3: Object, 5: Object} 
0:Object 
certificate:"" 
country:"Egypt" 
created_at:"2017-04-26 20:39:22" 
description:" " 
end_date:"2017-04-22" 
event_id:1 
id:1 
name:"Project Management" 
pic:"4537c00b63a920f5d1a49bd37b01e789.jpg" 
1:Object 
3:Object 
5:Object 

我試圖寫這樣的代碼之後,但它沒有工作我只是僅訪問第一和第二元件。看來我沒有寫出正確的循環。它拒絕訪問第三和第四個要素。它必須用旁邊寫的數字來做一些事情。

var arr = JSON.parse(this.responseText); 
 
console.log(arr); 
 

 
var count = Object.keys(arr).length; 
 
console.log(Object.keys(arr).length); 
 
if (count != 0) { 
 
    for (var i = 0; i < count; i++) { 
 
    if (arr[i].type == "img") 
 
     var image = document.createElement("img"); 
 
    var e = "/storage/" + arr[i].pic.replace("\\", ""); 
 
    image.src = e; 
 
    } 
 
}

回答

0

問題在於對象中的屬性名稱不是連續的數字。你的對象中沒有arr[2]。您的代碼旨在循環遍歷每個元素中包含對象的數組,而不是缺少鍵的對象。

使用jQuery $.each()函數來遍歷對象。

var img; 
$.each(arr, function(key, obj) { 
    if (obj.type == 'img') { 
     img = document.createElement("img"); 
     img.src = "/storage/" + obj.pic.replace('\\', ''); 
    } 
}); 
+0

謝謝,它的工作 –