Javascript Json“for”循环
我想把有关视频的信息放在t1、t2和t3中,但所有内容都放在t3中。代码中的错误在哪里 $function{ 对于变量i=1;i<4;i++{ var-box=t+i; 变量id=dQw4w9WgXcQ; var-img=; console.logi; $.getJSON'https://www.googleapis.com/youtube/v3/videos?part=statistics&id=“+id+”&key=AIzaSyBlYMwv6QQ9x3r1ACVt1ZeyiRXiaGeKOBU”,函数数据{ $box.prependviewCount:+data.items[0].statistics.viewCount; }; $.getJSON'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=“+id+”&key=AIzaSyBlYMwv6QQ9x3r1ACVt1ZeyiRXiaGeKOBU”,函数数据{ $box.prepend+Title+data.items[0]。snippet.Title+; $box.prepend+频道标题+数据.items[0]。snippet.channelTitle+; $box.prependimg; }; } } 关闭。。。将所有内容封装在一个闭包中,这将为每个迭代创建一个新的范围Javascript Json“for”循环,javascript,jquery,json,Javascript,Jquery,Json,我想把有关视频的信息放在t1、t2和t3中,但所有内容都放在t3中。代码中的错误在哪里 $function{ 对于变量i=1;i
$(function(){
for (var i = 1; i < 4; i++) {
(function(i)
var box = "#t" + i;
var id = "dQw4w9WgXcQ";
var img = "<img src='https://img.youtube.com/vi/" + id + "/default.jpg'>";
console.log(i);
$.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=' + id + '&key=AIzaSyBlYMwv6QQ9x3r1ACVt1ZeyiRXiaGeKOBU', function(data) {
$(box).prepend("viewCount: " + data.items[ 0 ].statistics.viewCount);
});
$.getJSON('https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=AIzaSyBlYMwv6QQ9x3r1ACVt1ZeyiRXiaGeKOBU', function(data) {
$(box).prepend("<h3>" + "Title" + data.items[0].snippet.title + "</h3>");
$(box).prepend("<h3>" + "Channel title" + data.items[0].snippet.channelTitle + "</h3>");
$(box).prepend(img);
});
}
})(i);
});
$.getJSON是异步的,在收到响应时将调用处理程序。但for循环不会等待处理程序被调用
创建一个内部函数,并将i的值作为参数传递,因为i的值对于内部函数是持久的
$function{
对于变量i=1;i<4;i++{
var tobeCalled=functioni{
var-box=t+i;
变量id=dQw4w9WgXcQ;
var-img=;
$.getJSON'https://www.googleapis.com/youtube/v3/videos?part=statistics&id=“+id+”&key=AIzaSyBlYMwv6QQ9x3r1ACVt1ZeyiRXiaGeKOBU”,函数数据{
$box.prependviewCount:+data.items[0].statistics.viewCount;
};
$.getJSON'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=“+id+”&key=AIzaSyBlYMwv6QQ9x3r1ACVt1ZeyiRXiaGeKOBU”,函数数据{
$box.prepend+Title+data.items[0]。snippet.Title+;
$box.prepend+频道标题+数据.items[0]。snippet.channelTitle+;
$box.prependimg;
};
}
托贝卡莱迪;
}
};
1.
2.
3.
查看闭包在JavaScript中是如何工作的!您对$.getJSON的调用是异步工作的,执行回调时box的值是t3!我很高兴这有帮助!快乐编码