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

前端 未结 2 1010
伪装坚强ぢ
伪装坚强ぢ 2021-01-04 02:52

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); });
}
<         


        
相关标签:
2条回答
  • 2021-01-04 03:21

    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);
    }
    
    0 讨论(0)
  • 2021-01-04 03:33

    You can just create a custom field in the object that you send to $.ajax(), and it will be a field in this when the promise callback is made.

    For example:

    $.ajax( { url: "https://localhost/whatever.php", method: "POST", data: JSON.stringify( object ), custom: i // creating a custom field named "custom" } ).done( function(data, textStatus, jqXHR) { var index = this.custom; } );

    0 讨论(0)
提交回复
热议问题