我對javascript/jquery比較新。'嵌套'for'循環未被觸發,直到第一次'後'循環
我想運行一個嵌套的for循環動態創建HTML內容,然後將其添加到我的身體表中。第一個'for'循環從Parse中提取數據,並創建一個html表格行腳本,然後將其附加到html正文中的表格中。嵌套的'for'循環應該爲第一個循環中的每個項目運行,並在正下方創建一個表格行元素。
但是,由於某種原因(我在調試時看到這個),第一個for循環在觸發嵌套循環之前完成。是否有任何明顯的原因或語法造成這種情況?
在此先感謝!
$(document).ready(function(){
var currentUser = Parse.User.current();
var htmlContent = "";
if (currentUser) {
console.log(currentUser.get("full_name"));
$("#user").html(currentUser.get("full_name"));
var QrUrl = Parse.Object.extend("qr_url");
var qr_query = new Parse.Query(QrUrl);
qr_query.equalTo("createdBy", currentUser);
qr_query.include("createdBy");
qr_query.ascending("createdAt")
qr_query.find({
success: function(qrid_results) {
for (var i = 0; i < qrid_results.length; i++) {
var qridentry = qrid_results[i];
htmlContent="<tr><td>"+qridentry.get("title")+"</td><td>"+"Created"+"</td><td>"+qridentry.createdAt+"</td><td>"+qridentry.get("createdBy").get("full_name")+"</td></tr>";
$('#trackingtable').append(htmlContent);
var QrLogger = Parse.Object.extend("qr_logger");
var qrlog_query = new Parse.Query(QrLogger);
qrlog_query.equalTo("qrid", qridentry);
qrlog_query.include("createdBy");
qrlog_query.include("qrid");
qrlog_query.find({
success: function(qrlog_results) {
for (var j = 0; j < qrlog_results.length; j++) {
var qrlogentry = qrlog_results[j];
try{
var user_id = obj.get("createdBy").get("full_name");
console.log(user_id);
}
catch(err){
user_id="Unknown Scanner";
}
var dated = qrlogentry.updatedAt;
htmlContent="<tr><td>"+qrlogentry.get("qrid").get("title")+"</td><td>"+"Scanned"+"</td><td>"+dated+"</td><td>"+user_id+"</td></tr>";
$('#trackingtable').append(htmlContent);
}
}
});
//$('#trackingtable').dataTable({ });
}
}
});
}
});
'qrlog_query.find'似乎是一個異步函數。 –
這裏並沒有嵌套'for'循環。您需要了解**異步**接口如何工作。 – Pointy
是否真的沒有辦法限制這一切作爲同步功能? – mkirzon