JavaScript倒计时无法分析整数 5. var myVar=setInterval(函数(){apa()},1000); var f=5; 函数apa(){ document.getElementById(“haha”).innerHTML=f; f--; apa(); }

JavaScript倒计时无法分析整数 5. var myVar=setInterval(函数(){apa()},1000); var f=5; 函数apa(){ document.getElementById(“haha”).innerHTML=f; f--; apa(); },javascript,timer,countdown,Javascript,Timer,Countdown,我试着用定时器和减法倒计时,但输出结果不是整数(5,4,3,2,1,…),而是-336048等。 如何修复此问题?不应在apa内部调用apa(),因为它会创建无限递归。setInterval()将以1秒的间隔调用apa,因此无需再次调用它 <html> <body> <a id="haha">5</a> <script type="text/javascript"> var

我试着用定时器和减法倒计时,但输出结果不是整数(5,4,3,2,1,…),而是-336048等。 如何修复此问题?

不应在
apa
内部调用
apa()
,因为它会创建无限递归。
setInterval()
将以1秒的间隔调用
apa
,因此无需再次调用它

<html>
    <body>
        <a id="haha">5</a>
        <script type="text/javascript">
            var myVar = setInterval(function(){apa()}, 1000);
            var f = 5;

            function apa() {
                document.getElementById("haha").innerHTML = f;
                f--;
                apa();
            }       
        </script>
    </body>
</html>
var myVar=setInterval(apa,1000)//只需将apa引用传递给setInterval
var f=5;
函数apa(){
document.getElementById(“haha”).innerHTML=f;
f--;
}

5
您可以试试这个。这将仅计算(5 4 3 2 1)

//also there is no need to use a anonymous function you can just say
//var myVar = setInterval(apa, 1000);
var myVar = setInterval(function () { 
    apa()
}, 1000);
var f = 5;

function apa() {
    document.getElementById("haha").innerHTML = f;
    f--;
}
var myVar=setInterval(function(){if(f>0) apa()},1000);
        var f=5;
         function apa() 
        {
            document.getElementById("haha").innerHTML = f;
            f--;
        }