2011-05-22 32 views
0

我用下面的代碼,以使一個AJAX調用:如何訪問jQuery.ajax()的返回數據

$.ajax({ 
    url: href, 
    type: 'POST', 
    data: {}, 
    dataType: "json", 
    error: function(req, resulttype, exc) 
    { 
     // do error handling 
    }, 
    success: function(data) 
    { 
     for (var tracklist in data) { 
     console.log(tracklist.name); // undefined 
     console.log(tracklist['name']); // undefined 
     } 
    } 
    }); 

我回到AJAX請求是什麼:

{"5":{"id":5,"name":"2 tracks","count":2},"4":{"id":4,"name":"ddddd","count":1},"7":{"id":7,"name":"Final test","count":2}} 

我想知道的是如何訪問當前曲目列表的name屬性。

回答

3

您應該使用

console.log(data[tracklist].name); 

,而不是

console.log(tracklist.name); 
2

如果你想遍歷這些對象,這將是更好,如果你返回一個數組:

[{"id":5,"name":"2 tracks","count":2},{"id":4,"name":"ddddd","count":1},{"id":7,"name":"Final test","count":2}] 

然後,你可以使用類似於你正在嘗試的for循環:

for (var tracklist in data) { 
    console.log(data[tracklist].id); 
    console.log(data[tracklist].name); 
    } 
+0

'用於in'適用於{}對象以及。 – Emmett 2011-05-22 16:07:08

+0

它也適用於對象。編輯你很快Emmett :) – PeeHaa 2011-05-22 16:08:16

1

在循環:

for (var tracklist in data) { 
    console.log(tracklist.name); // undefined 
    console.log(tracklist['name']); // undefined 
} 

tracklist是各元素的鍵,而不是它的值。

因此:

for (var tracklist in data) { 
    console.log(data[tracklist].name); // ... or ... 
    console.log(data[tracklist]['name']); 
} 
相關問題