所以,我有下面的代碼: -刪除JavaScript警告線停止我追加的代碼工作正常
function testing(results) {
$table = $('#formList')
for (var event in results) {
var formIDX = results[event]["forms_idx"]
var formID = results[event]["form_id"]
var eventIDX = results[event]["events_idx"]
var eventID = results[event]["event_id"]
var objID = results[event]["object_id"]
var testVal = results[event]["value"]
alert($table.find("#" + formIDX).find('td:eq(1)').find("div").find("table").html())
$subTable = $table.find("#" + formIDX).find('td:eq(1)').find("div").find("table")
var url ="http://localhost:3278/FARTFramework/testScenario/ajaxPopulateSubTables"
$.post(url, {
formID: formID, eventIDX:eventIDX, eventID:eventID, objID:objID, testVal:testVal
}, function(data) {
$subTable.append(data);
}).done(function(){});
}
}
它基本上需要一個JSON文件,然後將數據添加到右邊的分表內的主表通過追加等
奇怪的是在調試過程中,我有一個警報在那裏檢查它所識別的表的HTML(確保它找到了正確的子表等),並且都運行良好。但是如果我刪除了這個警報,它會突然將所有數據追加到主表的最後一個子表中?任何線索?
這就是異步的東西是如何工作的,循環繼續和完成,然後***內容插入ajax,警報只是暫停操作足夠長的時間完成ajax。換句話說,你的邏輯是有缺陷的,在進行下一次迭代之前,你必須等待ajax調用完成(並且請不要將它設置爲async:false)! – adeneo
感謝您對@adeneo的解釋,關於如何實現這一點的任何建議?恐怕我的google-fu已經拋棄了我,我對ajax很陌生(大部分都是真的!) – MorkPork