javascript - 如何使用 getJSON 循环访问 last.fm 结果

标签 javascript jquery arrays each last.fm

我是 JS 的新手,我试图在过去 7 天内从他们的 API 获取我的 last.fm toptracks,限制为 3:

http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=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>');
    });
});

Example fiddle

另外,请注意 documentation指出 limit 的默认设置是每个请求 50。

关于javascript - 如何使用 getJSON 循环访问 last.fm 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31511036/

相关文章:

javascript - 动态添加到 DOM 的对象不响应 jQuery 事件

android - 从 onClick 和 onShake 事件中随机生成声音?

java - 检查下一个数组元素是否与Java中的当前元素不同

javascript - 使用 setLabel 方法将 CSS 应用于卡住列的标题

javascript - 在选择列表中选择默认选定项的最佳方式是什么? (落下)

c++ - 类使用初始化技巧创建对象

JavaScript 数组 : Algorithm sorting and picking

javascript - dda算法——光线转换

Javascript 对象原型(prototype)和 Object.create 方法

javascript - 如何在 D3.js 中为笔画的粗细设置动画?