我不知道如何修复这个代码
I have no idea how to fix this code
我真的失去了这个项目,我基本上想做一个页面,显示twitch频道的状态。这是相互依存的链接
问题是循环似乎在else语句完成之前就完成了,所以它每次只显示一个通道信息。一切都搞砸了。
我只是想为我的频道数组内的每个twitch频道显示一些信息。
$(document).ready(function(){
function gatherChannels(){
var channels = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
for(var i=0;i<channels.length;i++){
currentChannel = channels[i];
(function(someVar){ //<-- and u will get it here
currentChannel = channels[someVar]; // all ur code
})(i);//< -- here u pass ur loop i value
$.getJSON("https://api.twitch.tv/kraken/streams/" + channels[i] + "?callback=?", function(data){
if (data.stream !== null){
$(".main-area").append("<div class ='channels' id='currentChannel'>" + data.stream.channel.status + "</div>");
}
else{
$.getJSON("https://api.twitch.tv/kraken/channels/" + currentChannel + "?callback=?", function(info){
$(".main-area").append("<div class ='channels' id='currentChannel'>" + info.url + "</div>");
});
}
});
}
}
gatherChannels();
});
你的currentChannel变量被设置在一个循环中,这个循环正在被你的循环修改,当你的第一个ajax请求被返回的时候,循环已经结束了,这就是为什么你的信息。Url是最后一个。
您可以将ajax调用放入它自己的函数中,如下所示。
$(document).ready(function() {
function gatherChannels() {
var channels = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"],
getChannel = function getChannel(channel) {
$.getJSON("https://api.twitch.tv/kraken/streams/" + channel + "?callback=?", function(data) {
if (data.stream !== null) {
$(".main-area").append("<div class ='channels' id='currentChannel" + channel + "'>" + data.stream.channel.status + "</div>");
} else {
$.getJSON("https://api.twitch.tv/kraken/channels/" + channel + "?callback=?", function(info) {
$(".main-area").append("<div class ='channels' id='currentChannel'" + channel + ">" + info.url + "</div>");
});
}
});
}
for (var i = 0; i < channels.length; i++) {
getChannel(channels[i]);
}
}
gatherChannels();
});
body {
background-color: black;
color: #fff;
}
h1 {
text-align: center;
background-color: gray;
padding: 20px;
}
.main-area {
margin-left: auto;
margin-right: auto;
}
.channels {
background: blue;
margin-top: 10px;
margin-left: auto;
margin-right: auto;
color: white;
}
<html>
<head>
<title>Twitch Streamer Status</title>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div class="container">
<div class="main-area">
<h1>Twitch Streamers</h1>
</div>
</div>
</body>
</html>
相关文章:
- 请有人修复这个SHOW/HIDE表Javascript代码
- 如何修复在浏览器中打开后出现在屏幕上的html/Javascript代码
- 如果.htaccess文件中只写了一行代码,那么我所有的css和js都不起作用,如何修复它
- 我怎样才能修复我的代码,以便<罢工>不会使我的 Javascript 代码无效
- 修复Javascript代码以将文本中的所有Youtube链接转换为Youtube ID功能
- 如何修复 Webpack 在生产中篡改我的代码
- 当我点击按钮时,如何修复我的代码并运行函数
- 如何修复我的红绿灯代码
- 无法修复我的 JavaScript 代码中的错误
- 代码命中找不到修复方法
- 如何修复由于在java脚本中使用eval()而在强化扫描中的动态代码评估问题
- 如何修复此代码以显示 10 秒并一次又一次地永远隐藏 10 秒
- 这段代码适用于chrome,但不适用于firefox和IE或Safari,我该如何修复它
- 如何修复错误代码:在Facebook视频共享-1000
- 损坏的格式工具无法修复它.导致上一个代码块中断
- 提交按钮警报框错误.如何识别错误并修复代码
- 如何修复示例javascript代码;error:ReferenceError:require未定义
- 如何修复“;是否停止运行此脚本"提醒注意此代码
- 修复javascript代码中的forEach循环
- 缺少)在参数列表之后-我如何在这个简单的代码中修复它我一直在改变事情,得到了dif错误,但无法解决这个问题