如何使用setInterval和clearInterval在javascript中停止计时器十秒?

For*_*a 1 4 javascript timer settimeout setinterval clearinterval

我想知道如何使用setInterval和clearInterval在javascript中停止计时器十秒后?这是我的代码示例,请你告诉我哪里出错了:

<!DOCTYPE html>
<html>
<head>
<script>

var tt=setInterval(function(){startTime()},1000);


function startTime()
{
  var today = new Date();
  var h=today.getHours();
  var m=today.getMinutes();
  var s=today.getSeconds();
  // add a zero in front of numbers<10
  m=checkTime(m);
  s=checkTime(s);
  today=checkTime(today);
  document.getElementById('txt').innerHTML=s;

}

function checkTime(tt)
{
if (tt==10)
  {
    tt="0" + tt;
    console.log(tt);
    clearInterval(tt);
  }
return tt;
}
</script>
</head>

<body onload="startTime()">
<div id="txt"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Tom*_*zan 12

您可以在设置间隔后立即将超时设置为清除:

var tt = setInterval(function(){ startTime() }, 1000);
setTimeout(function() { clearInterval(tt); }, 10000);
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么,但这个答案被贬低了,即使它是最简单的答案而且有效.它设置一个间隔并在10秒后清除它.这正是它应该做的. (3认同)

Tri*_*y12 5

由于startTime()将每秒运行一次,使计数器在其内部增加到10,然后清除间隔.

var tt=setInterval(function(){startTime()},1000);
var counter = 1;

function startTime()
{
  if(counter == 10) {
    clearInterval(tt);
  } else {
    counter++;
  }

  document.getElementById('txt').innerHTML= counter;  
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle