2016-10-13 5 views
1

<div>에 추가하기 위해 JSON 파일 (Squarespace)에서 특정 정보를 얻으려고합니다. 데이터를 반복하고 각 게시물에서 위치를 가져와야합니다. 이것은 내가 사용하고 코드입니다 :jQuery를 사용하여 JSON 데이터를 반복하기

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

내가 같은 정수를 사용하여 항목을에서 지정할 경우에만 작동합니다 :

$('.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 대신 span을 사용할 수도 있습니다. 또한 모든 값을 누적하여 하나의 문자열에 쉼표로 구분 된 목록으로 추가 할 수 있습니다. – akosel