首页 > 解决方案 > 简单的 5 位计时器不显示预期结果

问题描述

下面的代码应该产生一个按秒计数的五位计时器(例如:2:32:18)。变量“一”到“五”代表位值,其中“五”代表小时,“一”代表秒的第一位。我真的很感激一些解释为什么这不能正确显示......

<html>
    <body>
    
        <p id="clock"></p>
    
        <script>
        
            let one = 0;
            let two = 0;
            let three = 0;
            let four = 0;
            let five = 0;
            
            function counter() {            
                
                if (one = 10) {
                    two ++;
                    one = 0;
                }
        
                if (two = 6) {
                    three ++;
                    two = 0;
                }
    
                if (three = 10) {
                    four ++;
                    three = 0;
                }
        
                if (four = 6) {
                    five ++;
                    four = 0;
                }
        
                one++;
                
                var oneS = one.toString();
                var twoS = two.toString();
                var threeS = three.toString();
                var fourS = four.toString();
                var fiveS = five.toString();

                document.getElementById("clock").innerHTML = fiveS + ":" + fourS + threeS + ":" + twoS + oneS;
                
                setTimout(counter, 1000);
            }
            
        </script>
    </body>
</html>

标签: javascript

解决方案


发现几个问题:

  1. counter函数永远不会被调用,因为该setTimeout语句被放置在counter函数内部。将其移出大括号。
  2. 错字,应该setTimeout代替setTimout
  3. 改为使用setInterval,因为我假设您想重复调用该函数

推荐阅读