2012-06-08 1 views
0

Допустим, у меня есть XML вроде этого: http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=b25b959554ed76058ac220b7b2e0a026&track=Just%20for%20Me&artist=Hinoi%20TeamJQuery - Получение определенного XML не работает

Я пытаюсь получить name в track и он не работает: я делаю это:

$.ajax({ 
     type: "GET", 
     url: "http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=b25b959554ed76058ac220b7b2e0a026&track="+yourTrack+"&artist="+yourArtist, 
     dataType: "xml", 
     success: function(xml) { 
      $(".loading").css("display", "none"); 
      $(xml).find('track').each(function(){ 
       var id = $(this).find('id').text(); 
       console.log("Success!"); 

       var song = $(this).find('track > name').text(); 
       var name = $(this).find('artist name').text(); 
       var album = $(this).find('album title').text(); 

       $("#more").append("\nSong: " + song); 
       $("#more").append("\nArtist: " + name); 
       $("#more").append("\nAlbum: " + album); 

       $("#more").append("\n\nlast.fm ID: " + id); 

      }); 
     } 
    }); 

и результатом является следующее:

Song: 
Artist: Hinoi Team 
Album: Super Euro Party 

last.fm ID: 43135480 

Помощь?

ответ

1

селектор в этой линии не является правильным:

var song = $(this).find('track > name').text(); 

$(this) является <track> элементом. Вы ищете другой элемент <track>, который вам не нужен. Вы ищете <name>, поэтому используйте это вместо:

var song = $('> name', this).text(); 
+0

О, я вижу. Но я попробовал то, что вы предложили ранее сегодня. Var song = $ ('name', this) .text(); 'и я получил' JUST FOR MEHinoi Teameurobeatjpopj-popgreat songsjapanese pop'. Это связано с тем, что в этом дереве XML имеется больше, чем один «». – nn2

+0

Получил. См. Мое редактирование. – Blender

+0

Спасибо. Смогу ли я сделать то же самое с 'album'>' image = "big" '? – nn2

Смежные вопросы