【发布时间】:2016-11-14 13:26:11
【问题描述】:
我刚刚从 freecode.camp 学习 Jquery,并且正在编写一些代码来使用 Twitchtv JSON API (https://www.freecodecamp.com/challenges/use-the-twitchtv-json-api)。
当我想在 Twitch.tv 上获得五个频道的标志时,但当我编写代码时,我发现有四个相同的标志,这不是我想要的。
我在http://codepen.io/zhangolve/pen/JKOXwW?editors=1111 有一个codepen,如果你喜欢,请查看。
这是JS代码:
$("#click").on("click", function() {
var channel = ['OgamingSC2', 'FreeCodeCamp', 'terakilobyte', 'storbeck', 'RobotCaleb'];
for (var i = 0; i < channel.length; i++) {
var url = 'https://api.twitch.tv/kraken/streams/' + channel[i] + '?callback=?';
var thechannelurl = 'https://api.twitch.tv/kraken/channels/' + channel[i] + '?callback=?';
$.getJSON(url, function(data) {
if (data.stream == null) {
$.ajax({
dataType: "json",
url: thechannelurl,
//data: data,
type: "GET",
success: function(w) {
$("#content").append('<img src=' + w.logo + '> </img>')
}
});
} else {
var logo = data.stream.channel.logo;
//console.log(logo);
$("#content").append('<img src=' + logo + '></img>');
}
})
}
})
【问题讨论】:
-
thechannelurl的值始终相同,因为循环结束后将调用$.getJSON的回调。一个快速的解决方法是使用立即调用的匿名函数(查看this answer 更多详细信息) -
感谢您的工作,它给了我一些处理它的想法。
标签: javascript jquery json api