Javascript 使用循环变量的getElementById
我想从数据库中提取一个字符串并将其放入我的段落中:Javascript 使用循环变量的getElementById,javascript,jquery,html,node.js,express,Javascript,Jquery,Html,Node.js,Express,我想从数据库中提取一个字符串并将其放入我的段落中: <p id="q_1"></p> <p id="q_2"></p> 这不管用。为什么以及如何解决这个问题 for( var j = 1; j <= 5; j++){ $.get("bewertung/get/"+j+"", function (data){ document.getElementById("q_"+j+"").innerHTML = data[0]
<p id="q_1"></p>
<p id="q_2"></p>
这不管用。为什么以及如何解决这个问题
for( var j = 1; j <= 5; j++){
$.get("bewertung/get/"+j+"", function (data){
document.getElementById("q_"+j+"").innerHTML = data[0].question;
})
}
//data[0].question is the field in the DB
for(var j=1;j这是由于当您收到服务器的响应时(或执行任何其他异步操作)将执行循环,并且j
变量将具有值6
。为了防止出现这种情况,您需要为for循环中使用的异步操作创建闭包。请注意,我使用了setTimeout
而不是AJAX
for(var j=1;j)您是否也可以提供fr返回数据?您可以检查数据[0].question
跳出循环?快告诉我吧,mon。如果你知道更多这方面的信息,请随意编辑我的答案。但是为什么要删除AJAX?看起来critical@XavierJ演示问题/解决方案不需要ajax。@KevinB是对的,这适用于所有异步操作,而且大多数JS沙盒不允许使用network请求(但尚未尝试此请求)
for( var j = 1; j <= 5; j++){
$.get("bewertung/get/"+j+"", function (data){
document.getElementById("q_"+j+"").innerHTML = data[0].question;
})
}
//data[0].question is the field in the DB