【发布时间】:2012-04-04 02:28:49
【问题描述】:
下面的函数应该为每个查询抓取视频并构造一些依赖于i的html
function getVideos() {
var text = "";
for(var i=0; i<queryArray.length; i++){
var queryUrl = "http://gdata.youtube.com/feeds/api/videos?q="+queryArray[i]+
"&max-results=1&orderby=relevance&v=2&alt=json&format=5";
$.get(queryUrl, function(data){
constructHtml(data, i);
}, 'json');
}
}
但是,每次调用$.get 时,它都会将i 作为2 传递给constructHtml,这是为什么呢?
注意:querryArray 中有两个值,因此"2" 在技术上超出范围。
【问题讨论】:
-
进行 ajax 调用时,
i值不会嵌入到构造调用中。 JS 在执行 constructHTML 调用时提取 i 的可用值,这是在您的主 for 循环完成之后的某个时间,所以i应该几乎总是在循环退出后设置的 LAST 值。
标签: javascript jquery youtube-api