2012-06-07 3 views
1

Привет, я долгое время изобилую списком альбомов itunes api.iTunes search API undefined first result

Моя проблема состоит в том, что миниатюра и название альбома в первом <li></li> всегда возвращаются как неопределенные.

Код основан на поиске пользователя itunes, который работает по назначению, но моя версия для списка альбомов всегда дает этот глюк.

$(document).ready(function(){ 
    var searchTerm = '909253'; 
    $.getJSON("http://itunes.apple.com/lookup?id=" + searchTerm + '&limit=30' + '&entity=album' + '&callback=?', function(data) { 
    $.each(data.results, function() { 
     $('<li></li>') 
     .hide() 
     .append('<img src="' + this.artworkUrl60 + '" />') 
     .append('<span><a href="http://itunes.apple.com/search?term=' 
      + this.artistName + '">' + 'Artist: ' + this.artistName 
      + '</a> ' + '<br />Album Title: ' + this.collectionName + '</span>') 
     .appendTo('#results') 
     .fadeIn(); 
    });   
    $("#results").listview("refresh"); 
    }); 
});  

См http://jsfiddle.net/tris_wood/u2sYe/2/

Я видел подобные сообщения с этой проблемой в т-й Itunes апи, но без каких-либо решений, которые я смог найти.

Любая помощь была бы принята с благодарностью.

+0

Можете ли вы добавить свой код к своему вопросу? Это спасает нас от совершения прыжка. –

ответ

1

Это потому, что первый возвращаемый элемент всегда является родительским элементом, в данном случае художником.

Если вы запрашиваете:

http://itunes.apple.com/lookup?id=909253&entity=album 

вы получите (как вы можете видеть в wrapperType):

0) Artist information 
1) First album 
2) Second album 

К сожалению, ваш код временно отсутствует в данный момент, и я не могу проверить, если моя интуиция верна.

+0

Ах право. Понимаю. Это действительно работает для художников, у которых есть только один трек, но я все еще не могу заставить его работать должным образом. Не могли бы вы снова посмотреть, как jsfiddle возвращается. Большое спасибо. http://jsfiddle.net/tris_wood/u2sYe/2/ – Kastansa

+1

Как вы можете видеть из jsfiddle путем печати 'data.results', первым результатом является художник. Вы можете легко удалить данные с помощью data.results.shift(). http://jsfiddle.net/sWVY8/ – framp