首页 > 解决方案 > 为什么我的计数器功能没有增加?

问题描述

基本上我想用javascript倒计时,按照我的逻辑,下面的代码应该可以工作,但由于未知原因它不起作用。有人可以帮我弄清楚代码有什么问题吗?这有点烦人。

function startCounter(time)
{
    var counter= document.getElementById("counter").innerHTML;
    var min=0;

    setTimeout(function()
    {
        for(i = 0; i < time; i++)
        {
            document.getElementById("counter").innerHTML = min+ ":" +i;

            if(i == 59) {
                min++;
                i = 0

                document.getElementById("counter").innerHTML = min+ ":" +i; 
            }	
        }
    }, 1000)
};

startCounter(89);
<p id="counter">0:00</p>

标签: javascripthtmlsettimeout

解决方案


您正在创建一个无限循环。

您正在包装这部分:

if(i == 59) {
    min++;
    i = 0

    document.getElementById("counter").innerHTML = min+ ":" +i; 
}   

在使用 i 作为限制器的 for 循环中。每次 i 达到 59 时,您都将其重置为 0,然后循环继续。

// Add your code here

function startCounter(time)
{
    var counter= document.getElementById("counter").innerHTML;
    var min = parseInt(time / 60);
    var seconds = time % 60;

    setInterval(function()
    {
         
        seconds++;
         
         document.getElementById("counter").innerHTML = min+ ":" +seconds;

            if(seconds == 60) {
                min++;
                seconds = 0

                document.getElementById("counter").innerHTML = min+ ":" +seconds; 
            }	

    }, 1000)
};

console.log("Start");

startCounter(89);
<p id="counter">

</p>


推荐阅读