我是JS的新手,并尝试在过去7天内获取我的last.fm toptracks
,其API的限制为3:
下面的代码可以使用,但每当我将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);
});
});
答案 0 :(得分:2)
首先,您需要修改代码以循环返回的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>');
});
});
另请注意,documentation表示limit
的默认设置为每个请求50个。
答案 1 :(得分:0)
代码下方:
$.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>');
});
});
小提琴:
答案 2 :(得分:0)
这只是一个语法错误
$.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/