关闭不与Ajax一起使用

I'm using a looped ajax call with a closure but the value of the variable isn't being retained. It takes the value from the last iteration.

for(int i = 0; i < data.length; i++) {
    createElement(data[i], otherdata[i]);
}

function createElement(d,od){
    d.success = function(r) { console.log(od) };
    $.ajax(d);
}

lets say otherdata= [1,2,3]. the log will show '3' three times any ideas why this is happening

There are no types in javascript, use var instead of int in your loop, and fix the syntax errors.

for(var i=0; i<data.length;i++){
    createElement(data[i],otherdata[i]);
}

Your code should be like below Use VAR instead of Int Because Javascript don't know this, and also there is no colon (:) you have to use semi-colon instead(;)

 var data = [
    {},
    {},
    {}
];

var otherdata = [
    1,
    2,
    3
]

for (var i = 0; i < data.length; i++) {
    createElement(data[i], otherdata[i]);
}


function createElement(d, od) {

    d.success = function (r) {
    alert(od);

    };

    d.url = '/echo/json/';

    $.ajax(d);

}

Above code works perfect, hope this helps...