0

我很难显示来自 json 的数据。标题显示正常,但item.volumeInfo.industryIdentifiers.type返回未定义。

$.ajax({
url: 'https://www.googleapis.com/books/v1/volumes?q=:isbn=0-13-727827-6',
dataType: 'json',
success: function (data) {
    $.each(data.items, function (index, item) {
        $(".tab1").append("<div>" + item.volumeInfo.title + "</div><div>" + item.volumeInfo.industryIdentifiers.type + "</div>");
    });
}
});

小提琴在这里:http: //jsfiddle.net/HFs8U/1/

非常感谢您的帮助。

4

2 回答 2

2

您需要将 [0] 放在 .type 之前,因为 volumeInfo 可以有两个行业标识符。当然,这只会显示第一个,因此如果存在多个,您可能需要找到一种更合适的方式来显示两者。

$.ajax({
    url: 'https://www.googleapis.com/books/v1/volumes?q=:isbn=0-13-727827-6',
    dataType: 'json',
    success: function (data) {
        $.each(data.items, function (index, item) {
            $(".tab1").append("<div>" + item.volumeInfo.title + "</div><div>" + item.volumeInfo.industryIdentifiers[0].type + "</div>");
        });
    }
});
于 2013-03-26T13:01:14.210 回答
0

解决方案不是很困难。david99world 建议在每个项目中再做一次 $.each 循环并指向一个小提琴。我稍作修改并提出:

$.ajax({
url: 'https://www.googleapis.com/books/v1/volumes?q=:isbn=0-13-727827-6',
dataType: 'json',
success: function (data) {
    $.each(data.items, function (i, item) {
        $(".tab1").append("<div>" + item.volumeInfo.title + "</div>");
        $.each(item.volumeInfo.industryIdentifiers, function (i2, type) {
            $(".tab1").append("<div>" + type.type + "</div>");
        });
    });
}
});

http://jsfiddle.net/8SnaL/

希望它可能对其他人有用。

于 2013-03-26T14:48:20.100 回答