javascript计数器使用for循环

时间:2017-11-16 18:10:45

标签: javascript html html5 web

我已经使用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;
&#13;
&#13;

4 个答案:

答案 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)

我不确切地知道你想要什么,但我认为这是你正在寻找的。

&#13;
&#13;
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;
&#13;
&#13;

答案 3 :(得分:0)

您可以使用setInterval代替

function wyswietlLiczbe(j) {
    x = setInterval(function() {
        if(j==0) clearInterval(x);
      document.getElementById("display").innerHTML = j--;
    }, 100);
}
wyswietlLiczbe(100);
相关问题