我有一个for循环包含ajax调用,我试图确定最佳的方法将索引从for循环传递到回调函数。这里是我的代码:
- var arr = [2001,2002,2003,2004,2005,2006,2007,2008,2009,2010];
- for (var i = 0; i < arr.length; i++)
- {
- $.ajaxSetup({ cache:false })
- $.getJSON("NatGeo.jsp",{ ZipCode: arr[i],Radius:
- document.getElementById("radius").value,sensor: false },function(data)
- {
- DrawZip(data,arr[i]);
- }
- );
- }
目前,由于异步ajax调用,只传递arr数组的最后一个值。我如何将每个arr数组的迭代传递给回调函数,除了同步运行ajax调用?
非常感谢您提供任何和所有的帮助。
你可以使用javascript闭包:
- for (var i = 0; i < arr.length; i++) {
- (function(i) {
- // do your stuff here
- })(i);
- }
或者你可以只使用$ .each:
- var arr = [2001,2010];
- $.each(arr,function(index,value) {
- $.ajaxSetup({ cache:false });
- $.getJSON("NatGeo.jsp",{ ZipCode: value,Radius:
- document.getElementById("radius").value,function(data) {
- DrawZip(data,value);
- }
- );
- });