构造Javascript回调:Javascript/JQuery
我给youtube打了一系列电话,比如:构造Javascript回调:Javascript/JQuery,javascript,jquery,Javascript,Jquery,我给youtube打了一系列电话,比如: function getVideos() { 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&alt=json-in-s
function getVideos() {
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&alt=json-in-script&format=5";
$.get(queryUrl, function(){
constructHtml(data, i);
});
}
}
但是firebug告诉我HTML中的“数据”没有定义。我猜我在jquery中使用回调的方式是错误的。谢谢你的帮助 回调函数中缺少
数据参数
$.get(queryUrl, function(data){
constructHtml(data, i);
});
$.get(queryUrl, function(data){
constructHtml(data, i);
});
改变
$.get(queryUrl, function(){
到
您将从中看到,success函数可以包括其他有用的参数success(data、textStatus、jqXHR),一个在请求成功时执行的回调函数。
您遗漏了一点:
$.get(queryUrl, function(data){
constructHtml(data, i);
});
您需要指定来自AJAX加载的匿名回调采用数据变量。然后将其传递给您的函数/您需要在回调函数中传递数据
$.get(queryUrl, function(data){
constructHtml(data, i);
});
$.get(queryUrl, function(data){
constructHtml(data, i);
});
匿名函数中缺少数据
参数:
$.get(queryUrl, function(data){
constructHtml(data, i);
});
但是,i
始终是queryArray.length
因为函数将在for循环运行后执行
您可以使用jQuery的each
在本地范围内获取i
:
$.each(queryArray, function(i, value) {
var queryUrl = "http://gdata.youtube.com/feeds/api/videos?q=" + value + "&max-results=1&orderby=relevance&alt=json-in-script&format=5";
$.get(queryUrl, function(data){
constructHtml(data, i);
});
});