我正在使用这段代码从抽搐中检索一些JSON:
for (var i = 0; i < streamList.length; i++) {
$.get(baseURL + streamList[i], getStreamInfo, "json");
}
其中getStreamInfo是回调函数。我想知道是否有可能传递&#34; i&#34;以某种方式与回调函数一起使用JSON。
答案 0 :(得分:2)
是的,您可以传递接收ajax查询数据的默认参数,然后添加i
var。
for (var i = 0; i < streamList.length; i++) {
$.get(baseURL + streamList[i],
function(data) { getStreamInfo(data, i) },
"json");
}
请注意,您需要在getStreamInfo
函数
希望它有所帮助。
答案 1 :(得分:2)
您可以将任何想要的变量添加到匿名对象中。确保get
函数不使用这些变量。
例如,我将变量foo
添加到匿名对象,并在回调函数中将其与this.foo
一起使用:
for (var i = 0; i < streamList.length; i++) {
$.get({
url: baseURL + streamList[i],
success: getStreamInfo,
dataType: "json",
foo:i
});
}
function getStreamInfo()
{
var i = this.foo;
}
答案 2 :(得分:1)
您可以使用Closures。
for (var i = 0; i < streamList.length; i++) {
(function(index){
$.get(baseURL + streamList[i], function(data){
getStreamInfo(data, index);
}, "json");
})(i);
}
注意:修改您的函数getStreamInfo
以接受index
。