Reputation: 59365
In the example below key
is equal to the length of d1.periods
everytime. Is their a better way besides passing key
into data
as a post
variable, to get key
into successes
anonymous function?
$.ajax({
url: 'api/dates.json',
dataType: 'json',
success: function(d1){
$('#scan-interactive').removeClass('disabled');
for(var key in d1.periods){
var html = "";
html += '<tr id="'+d1.periods[key].id+'">';
html += '<td class="month">'+d1.periods[key].month+'</td>';
html += '<td class="week">'+d1.periods[key].week+'</td>';
html += '<td class="days">'+d1.periods[key].days+'</td>';
html += '<td class="dates">'+d1.periods[key].dates+'</td>';
html += '<td class="open"></td>';
html += '<td class="refunded"></td>';
html += '<td class="closed"></td>';
html += "</tr>";
$('#scan-interactive table tbody').append(html);
$.ajax({
type: 'POST',
url: 'api/count.json',
dataType: 'json',
data:{'created_at_min':d1.periods[key].created_at_min,'created_at_max':d1.periods[key].created_at_max},
success: function(d2){
$('#'+d1.periods[key].id+" .open").html(d2.open);
$('#'+d1.periods[key].id+" .closed").html(d2.closed);
$('#'+d1.periods[key].id+" .returns").html(d2.returns);
}
});
}
}
});
Upvotes: 1
Views: 1334
Reputation: 95022
Pass the key as an option to the ajax request, then access it with this.nameofoption.
for (var i = 0; i < 5; i++) {
$.ajax({
url: "/echo/html",
method: "post",
data: {
html: "foo",
delay: 1
},
context: {key: i},
success: function(){
console.log(this.key);
}
});
}
Demo: http://jsfiddle.net/R9Ldd/2/
Updated to use firebuglite
Upvotes: 2
Reputation: 700362
Wrap it in a closure:
(function(key){
$.ajax({
type: 'POST',
url: 'api/count.json',
dataType: 'json',
data:{'created_at_min':d1.periods[key].created_at_min,'created_at_max':d1.periods[key].created_at_max},
success: function(d2){
$('#'+d1.periods[key].id+" .open").html(d2.open);
$('#'+d1.periods[key].id+" .closed").html(d2.closed);
$('#'+d1.periods[key].id+" .returns").html(d2.returns);
}
});
})(key);
Upvotes: 4