Javascript Json“for”循环

Javascript Json“for”循环,javascript,jquery,json,Javascript,Jquery,Json,我想把有关视频的信息放在t1、t2和t3中,但所有内容都放在t3中。代码中的错误在哪里 $function{ 对于变量i=1;i

我想把有关视频的信息放在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; }; } } 关闭。。。将所有内容封装在一个闭包中,这将为每个迭代创建一个新的范围

$(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!我很高兴这有帮助!快乐编码