Ajax - 将变量传递出循环

时间:2018-03-25 08:48:45

标签: jquery ajax variables youtube-javascript-api

我遇到了一个奇怪的Ajax问题,我必须从循环中传递一个变量“list_videoid”。此变量收集视频ID列表,其想法是以这种方式打印它们:

'asf2324xfes', '3r32r32fdsfas', '23fsafasfs',

此值必须位于“playlist = [list_videoid]”内。

当我直接在播放列表中粘贴视频代码时:

playlist = ['asf2324xfes', '3r32r32fdsfas', '23fsafasfs',]

音乐确实开始播放,但如果我使用变量:

playlist = [list_videoid]

......音乐没有播放。

我已经使用“console.log(list_videoid)”进行了测试,它确实打印了id列表。我不知道我是否失败了。

jQuery(function($){

    $(document).ready(function() {
        $.ajax({
            type : 'POST',
            url  : 'http://test/api.php',
            data : $("#buscar_cancion").serialize(),
            dataType : 'json',
            beforeSend: function(){
            }
        }).done(function(data) {
                var list_videoid= '';
                for ( var i=0; i < data.length; i++ ) {
                    list_videoid += "'"+data[i].idvideo+"',";
                }

            var tag = document.createElement('script');
            tag.src = "https://www.youtube.com/iframe_api";
            var firstScriptTag = document.getElementsByTagName('script')[0];
            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
            playlist = [list_videoid];      
            playlistTit = [];

            console.log(list_videoid); //'t_shSXXV91w','2dsf234f',

        });
    });
});

1 个答案:

答案 0 :(得分:0)

尝试以上查询答案

1.您还可以使用 let 定义更多本地变量(因为for循环中的var将始终删除相同的变量,而 let 将是每个变量的新变量时间,只能进行迭代)

2.您可以使用forEach函数而不是for循环。

例如:

channels.forEach(function(aChannel){
    //insert here your ajax call using aChannel instead of channels[i]
});
for(var i = 0:i<channels.length;i++){
    let myChannel = channels[i];
    // the reset of your code
}