我遇到了一个奇怪的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',
});
});
});
答案 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
}