2016-10-13 16 views
1

JSONファイル(Squarespace)から具体的な情報を取得しようとしていますが、<div>に追加することを目的としています。私はデータをループして各投稿から場所を取得する必要があります。これは私が使用しているコードです:jQueryを使用したJSONデータのループ

$.getJSON("http://www.theluxedit.com/?format=json-pretty", function(data) { 
    $.each(data, function(index, value) { 
     $('.locationData').append(data.items.location.addressLine2); 
    }); 
}); 

私のような、整数を使用してアイテムをspecifiy場合にのみ動作します:

$('.locationData').append(data.items[1].location.addressLine2); 

これは私がきた他の例のために働いているようです試してみましたが、おそらくJSONの連結が間違っていますか?

var $locationData = $('.locationData'); 
$.getJSON("http://www.theluxedit.com/?format=json-pretty", function(data) { 
    $.each(data.items, function(index, item) { 
     $locationData.append(getLocationEl(item.location.addressLine2));  
    }); 
}); 

function getLocationEl(address) { 
    return $('<div>', { text: address }); 
} 

これにより、各反復が異なる項目を見てみましょう:

答えて

2

問題は、項目そのものではなく、返されたオブジェクト全体を反復処理する必要があります。その場合、返された最上位のデータではなく、その項目のプロパティに直接アクセスできます。

また、私はこれがtheluxedit.comで実行されていると仮定しています。そうしないと、エラーが発生します。詳細はこちらを参照してください:"No 'Access-Control-Allow-Origin' header is present on the requested resource"

+0

ループ内のクラスの完全なDOM検索を行うのは効率的ではありません。ループの前に変数に結果を格納し、参照を使用します。 –

+0

優れた点!ありがとうございました。コメントを反映するために更新された投稿。 – akosel

+0

答えを更新しました。テキストを別々の行に表示する場合は、これがうまくいきます。 divの代わりにスパンを使用することもできます。さらに、すべての値を累積してカンマ区切りのリストとして単一の文字列に追加することもできます。 – akosel

関連する問題