我已经使用javascript创建了一个简单的计数器,但是存在问题字段"显示"从1开始,但它应该从100开始并变低。控制台日志正确显示从100到1的值。 我必须使用循环来完成这个任务,所以请不要使用递归替换它:)同样,超时肯定不等于100毫秒,它更多
function wyswietlLiczbe(j) {
setTimeout(function() {
document.getElementById("display").innerHTML = j;
}, 100);
}
for (var i= 100; i > 0; i--){
console.log(i)
wyswietlLiczbe(i);
}

<p id="display"></p>
&#13;
答案 0 :(得分:3)
由于循环立即执行,您需要等待每个数字越来越长的时间。这将排队wyswietlLiczbe
次修改。
就像现在一样,等待100分钟后,所有100 function wyswietlLiczbe(j, waitTime) {
setTimeout(function() {
document.getElementById("display").innerHTML = j;
}, waitTime);
}
for (var i= 100; i > 0; i--){
console.log(i)
wyswietlLiczbe(i, (101 - i) * 100);
}
都会快速连续执行。
<p id="display"></p>
=IF(K25="","",L24+K25)
答案 1 :(得分:1)
将条件构建到将在超时后执行的函数中。
var elmD = document.getElementById("display");
function wyswietlLiczbe(j) {
setTimeout(function() {
elmD.innerHTML = j;
j--;
if(0 <= j ) {
wyswietlLiczbe(j)
}
}, 100);
}
wyswietlLiczbe(100);
答案 2 :(得分:1)
我不确切地知道你想要什么,但我认为这是你正在寻找的。 p>
function wyswietlLiczbe(j) {
if (j >= 0) {
setTimeout(function() {
document.getElementById("display").innerHTML = j;
j--;
wyswietlLiczbe(j);
}, 100);
}
}
wyswietlLiczbe(100);
&#13;
<p id="display"></p>
&#13;
答案 3 :(得分:0)
您可以使用setInterval代替
function wyswietlLiczbe(j) {
x = setInterval(function() {
if(j==0) clearInterval(x);
document.getElementById("display").innerHTML = j--;
}, 100);
}
wyswietlLiczbe(100);