Passing variables to $.ajax().done()

ajax, jquery, loops, promise, scoping

Solution

You can use a closure (via a self executing function) to capture the value of `i` for each invocation of the loop like this:

for (var i in obj) {
    (function(index) {
        // you can use the variable "index" here instead of i
        $.ajax(/script/).done(function(data){ console.log(data); });
    })(i);
}

Problem

I'm lost. How might I pass a loop variable to an AJAX .done() call? ``` for (var i in obj) { $.ajax(/script/).done(function(data){ console.log(data); }); } ``` Obviously, if I were to do `console.log(i+' '+data)` i would return the very last key in the object `obj` on every single iteration. Documentation fails me.

Original source