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

volumeInfoは2つのindustryIdentifiersを持つことができるため、.typeの前に[0]を付ける必要があります。当然、これは最初のものだけを表示するので、複数存在する場合は、両方を表示するためのより適切な方法を見つける必要があるかもしれません。

$.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 に答える