说,例如,在我的HTML文件,我有一个表,如下表行的变量,其中{{}}只是变量:AJAX请求不再指向纠正成功回调方法
{{ object.name }}{{ object.name }}然后在我的JavaScript文件我有以下代码:
var rows = document.getElementsByTagName("tr");
for (var r = 0; r < rows.length; r++){
var tr = rows[r];
var id = tr.id;
$.ajax({
url: "/some-link/" + id,
success: function(some_json){
some_json = JSON.parse(some_json);
var td = document.createElement("td");
td.innerHTML = some_json;
//Problem is the following tr is referring to the last tr in the for loop by the time the AJAX request is complete
tr.appendChild(td);
}
});
}
结果我得到的是:
{{ object.name }}{{ object.name }}SomeJSON from when rows was 0 in the for loopSomeJSON from when rows was 1 in the for loop但是,我想要的结果是:
{{ object.name }}SomeJSON from when rows was 0 in the for loop{{ object.name }}SomeJSON from when rows was 1 in the for loop我知道我可以通过向AJAX请求async: false解决这个问题,但我想保持同步。
任何帮助将不胜感激。
2017-02-25
Tuffail
+0
您试过更改'for(var rows = 0; rows
+0
因为'$ .ajax'是异步的,所以在调用成功的时候tr对于所有成功函数都是'tableRows [tableRows.length - 1]' –
+0
@MichaelCoker - 为什么改变变量名会有所作为? –