2011-05-22 34 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']); 
} 
相关问题