【发布时间】:2018-07-07 08:35:24
【问题描述】:
我正在尝试检查抽搐流是在线还是离线,如果是,请更改背景颜色。如果我在没有数组的情况下检查并且只输入它可以工作的名称,但使用数组它不会(我对 JSON 了解不多)。
function test() {
var twitchChannels = ["imaqtpie", "summit1g", "tyler1", "greekgodx"];
for (var i = 0; i < twitchChannels.length; i++) {
console.log(i + " " + twitchChannels[i]);
$.getJSON('https://api.twitch.tv/kraken/streams/' + twitchChannels[i] + '?client_id=XXXX', function(channel) {
console.log(i + " " + twitchChannels[i]);
if (channel["stream"] == null) {
console.log("Offline: " + twitchChannels[i])
document.getElementById(twitchChannels[i]).style.backgroundColor = "red";
} else {
console.log("Online: " + twitchChannels[i])
document.getElementById(twitchChannels[i]).style.backgroundColor = "green";
}
});
}
}
错误:红色部分内的http://prntscr.com/i6qj51是json函数内部发生的事情
【问题讨论】:
-
$.getJSON是异步的,因为您的回调中i的值不会是您期望的那样。使用let i或副本中描述的方法。
标签: javascript json twitch