我有以下这段代码。
for(i=0;i<ownerOps[0].length;i++){
// opportunities[i] = "ID #" + ownerOps[0][i].opportunityId + ": Number of Properties - " + ownerOps[0][i].numberOfProperties;
// console.log(opportunities[i]);
gets.push($.get("/getOwnerLeadByLeadId?ownerLeadId="+ownerOps[0][i].ownerLeadId,function(ownerLead,status){
console.log(ownerLead);
console.log("i="+i);
ownerOps[0][i].name=ownerLead.name;
ownerOps[0][i].email=ownerLead.email;
opportunities[i]="Name :"+ownerOps[0][i].name+' Email :'+ownerOps[0][i].email;
}))
}
由于get是异步的,i的值已经在success
处理程序中递增。无论如何在调用get时存储i的值,以便在成功处理程序中使用i的正确值?
答案 0 :(得分:0)
您可以使用 context 参数存储任何可在成功回调中访问的对象。在这里,您可以存储var i的值。
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$( this ).addClass( "done" );
})
答案 1 :(得分:0)
将循环体包裹在函数中,然后简单地执行以下操作:
for(i=0;i<ownerOps[0].length;i++){
getOwner(ownerOps[0][i], i);
}
然后在getOwner
的范围内,您将始终拥有i
答案 2 :(得分:0)
使用jquery解决它。
$.each(ownerOps[0],function(i,ownerOp){
// opportunities[i] = "ID #" + ownerOps[0][i].opportunityId + ": Number of Properties - " + ownerOps[0][i].numberOfProperties;
// console.log(opportunities[i]);
gets.push($.get("/getOwnerLeadByLeadId?ownerLeadId="+ownerOp.ownerLeadId,function(ownerLead,status){
console.log(ownerLead);
console.log("i="+i);
ownerOp.name=ownerLead.name;
ownerOp.email=ownerLead.email;
opportunities[i]="Name :"+ownerOp.name+' Email :'+ownerOp.email;
}))
})