当倒计时达到“0”时停止

3
我希望当计数器达到0时停止,有人能帮帮我吗?
function countdown() {
    var i = document.getElementById('counter');
    if (parseInt(i.innerHTML)<=0) {
    }
    i.innerHTML = parseInt(i.innerHTML)-1;
}
setInterval(function(){ countdown(); },1000);

今天最糟糕的答案:将“i.innerHTML = parseInt(i.innerHTML)-1;”包装在一个“else”块中。 :D - Shaded
4个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
6

您可以使用 clearInterval 函数:

var id;
function countdown() {
    var i = document.getElementById('counter');
    if (parseInt(i.innerHTML)<=1) {
        clearInterval(id);
    }
    i.innerHTML = parseInt(i.innerHTML)-1;
}
id = setInterval(countdown,1000);

1
我建议将 setInterval(function(){ countdown(); },1000); 更改为 setInterval(countdown,1000); - Itay Moav -Malimovka

2
<html >
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="counter">5</div>

<script type="text/javascript">
function countdown() {
    var i = document.getElementById('counter');
    i.innerHTML = parseInt(i.innerHTML)-1;
    if (parseInt(i.innerHTML)==0) {
       clearInterval(timerId);
    }
}
var timerId = setInterval(function(){ countdown(); },1000);
</script>
</body>
</html>

1

试试这个

<div id="counter">10</div>

var i = document.getElementById('counter'),
    sId;

function countdown() {
    var count = parseInt(i.textContent, 10);

    if (count < 1) {
        clearInterval(id);
    }

    i.textContent = count - 1;
}

sId = setInterval(countdown, 1000);
jsfiddle上。

谢谢,它在 jsfiddle 上运行得很好,但为什么它在我的 .js 文件上不起作用? - user2262049
没有所有信息,甚至没有发生什么或错误的描述等等,我无法回答这个问题。 - Xotic750
你是对的,这里是来自错误控制台的信息:未捕获的 TypeError: 无法读取 null 的 'textContent' 属性。 - user2262049
然后在您的页面上找不到id为“counter”的div。例如,取您接受的答案,并将javascript替换为上述内容或其他您无法正常工作的内容,所有问题很可能都会得到解决。 - Xotic750

1
一种方式;
function countdown() {
  var el = document.getElementById('counter');
  var value = parseInt(el.innerHTML, 10);

  var intervalId = setInterval(function() {
    el.innerHTML = --value;
    if (value === 0) {
       clearInterval(intervalId);      
    }
  }, 1000);
};

countdown();

它在 jsfiddle 上也可以工作,但在我的网站上却无法工作。问题出在哪里? - user2262049

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,