我在一个循环内做了几个jQuery ajax调用。每次有一个ajax调用返回时,我需要引用一个对应于原始ajax调用的值。我目前的代码无法正常工作,因为lskey
变量的值已被进一步的循环迭代所改变。jQuery Ajax调用循环丢失本地变量引用
下面是代码:
for (var i = 0, len = localStorage.length; i < len; i++) {
var lskey = localStorage.key(i);
if (lskey.substr(0, 4) === 'form') {
var postdata = localStorage.getItem(lskey); // Get the form data
$.ajax({
type: "POST",
async: "false",
url: "/Profile/PostForm",
data: postdata,
success: function (data) {
$('#rollinginfo').append('<br>' + data + ',key=' + lskey);
localStorage.removeItem(lskey); // Remove the relevant localStorage entry
}
, error: function (data) { $('#rollinginfo').append('<br />ERR:' + data); }
});
}
}
的问题是,lskey
是每执行一次循环被改变,因此,成功回调不必说当时存在lskey值的参考的通话。
如何为每个成功回调引用lskey
的正确值?
非常有用,非常感谢... – 2014-02-06 09:16:21
我在谷歌和BAM上写了一个狡猾的奇怪搜索查询!第一个结果是你的答案,非常感谢!和所以规则! – NaturalBornCamper 2015-03-01 04:24:31
解释为什么这项工作会有所帮助。 – dshgna 2016-02-19 08:08:30