jQuery将参数传递给$ .get()回调函数

时间:2015-09-15 11:55:25

标签: javascript jquery json

我正在使用这段代码从抽搐中检索一些JSON:

for (var i = 0; i < streamList.length; i++) {
     $.get(baseURL + streamList[i], getStreamInfo, "json");
}  

其中getStreamInfo是回调函数。我想知道是否有可能传递&#34; i&#34;以某种方式与回调函数一起使用JSON。

3 个答案:

答案 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

阅读How do JavaScript closures work?