0

我正在使用 getJSON 方法从 api 返回数据。api来自last.fm,这是我下面的代码......

$.getJSON('http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=ba2641c3bcc4d9e90ff25d4a7414f4ec&mbid='+lastresult1mbid+'&format=json', function (infodata) {
        console.log(infodata);       

         var lastrel1 =(JSON.stringify(infodata.album.releasedate));
         var releasedate1 = $.parseJSON(lastrel1);

         var fmtracks =(JSON.stringify(infodata.album.tracks.track[0].name));
         var tracks1 = $.parseJSON(fmtracks);

         $('#lastfminfo1').append(""+releasedate1+"");

          $('#tracks1').append(""+tracks1+"");

 });

对于可变 fmtracks,我需要显示这张专辑中的 15 首曲目,那么如何将它们全部输出到lastmininfo1div?

Track[0].name会起作用的,也会起作用track[1]

我需要一个循环或 [i] 或每个函数来显示它们,但我尝试的一切都不起作用。

非常感谢您的帮助或写作方向上的一点,在此先感谢

4

2 回答 2

1
$.getJSON('http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=ba2641c3bcc4d9e90ff25d4a7414f4ec&mbid=d63d427d-499c-4eb4-996e-535e36013766&format=json', function (infodata){ 

        console.log(infodata);
        var trackList = infodata.album.tracks.track
        for(var i = 0, currentTrack; currentTrack = trackList[i]; ++i){
                $("#lastfminfo1").append(currentTrack.name);
            } 
    })

这很有效,您只需要遍历曲目并附加您想要的任何信息。这只是没有任何标签的名称。

JSFiddle:http: //jsfiddle.net/klatzkaj/3Z884/1/

于 2013-01-24T17:31:00.163 回答
0

是的,您必须遍历它们,或者当支持 IE<9 不是问题时,您可以使用该forEach方法并将tracks每个标题推送到数组中。

但是,由于您使用的是 jQuery,因此您可能需要查看$.map().

于 2013-01-24T17:17:12.513 回答