如何循环通过最后.使用getJSON获取fm结果



我是JS的新手,并试图得到我的最后一个。在过去的7天里,fm toptracks,限制为3,从他们的API:

http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&用户= thisisheroic&周期= 7 day&限制= 3,api_key = 3 cbc1a3aa903935d08223263bcc3ba0b&格式= json

下面是我的代码,但每当我将limit更改为1以上时,它就会失败,没有控制台错误。知道如何使用.html打印出这3个曲目名称的数组吗?

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=1&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(result){
    $.each(result, function(){
        $('#lastfm_toptracks').html(result.toptracks.track.name);
    });
});

首先,需要修改代码以遍历返回的result.toptracks.track数组。其次,您需要将html()更改为append(),否则您将在每次迭代中覆盖元素的文本,并且只会看到最终的轨道。试试这个:

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(result){
    $.each(result.toptracks.track, function(i, track){
        $('#lastfm_toptracks').append('<p>' + track.name + '</p>');
    });
});

例子小提琴

另外,请注意文档声明limit的默认设置是每个请求50。

代码下面:

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(result){        
    $.each(result.toptracks.track, function(key, val){        
        console.log(val.name);
        $('#lastfm_toptracks').append('<div>'+ val.name + '</div>');
    });
});

和小提琴:

http://jsfiddle.net/k6g6v0rc/1/

这只是一个语法错误

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(results){
console.log(results);
$.each(results.toptracks.track, function(index,value){
    //$('#lastfm_toptracks').html(result.toptracks.track.name);
    alert(value.name);
});

});

应该可以工作。

链接是一个工作演示。

http://jsfiddle.net/nnyf0n28/7/

请浏览此链接::http://api.jquery.com/jquery.each/

最新更新