Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用循环变量的getElementById_Javascript_Jquery_Html_Node.js_Express - Fatal编程技术网

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