JavaScript Countdown Timer转到NaN

时间:2017-09-07 17:54:28

标签: javascript timer nan countdown

我正在尝试在javascript中编写代码,该代码的启动时间为" 100"并按1计数,直到达到0.但是,出于某种原因,当我调用startTimer()时,它会短暂显示" 100"在切换到" NaN"之前。有解决方案吗这是我的代码:

function startTimer() {
var o = document.getElementById("timer");
o.innerHTML = "100";
timer_2 = setInterval(displayUnixTimer, 1000);
}

function displayUnixTimer() {
time = document.getElementById("timer");
t = document.getElementById("timer").value;
time.innerHTML = parseInt(t)-1;
}

2 个答案:

答案 0 :(得分:1)

只需使用您最初设置的innerHTML值即可。

  

注意你可以传入你正在使用的元素,而不必每隔一段时间查找它。

var timeText = document.getElementById("timer");
timeText.innerHTML = "100";
var ticker = setInterval( displayUnixTimer, 1000, timeText); 

function displayUnixTimer(element){
  var t = element.innerHTML; 
  element.innerHTML = parseInt(t)-1;
  }
<div id="timer"></div>

答案 1 :(得分:0)

我在你的例子中用.innerText替换了.innerHTML,它起作用了:

<html>
<body>
<label id="timer"></label>
<script>
function startTimer() {
  var o = document.getElementById("timer");
  o.innerText = "100";
  timer_2 = setInterval(displayUnixTimer, 1000);
}

function displayUnixTimer() {
  time = document.getElementById("timer");
  t = time.innerText;
  time.innerText = parseInt(t)-1;
}
window.onload = function() {startTimer();};
</script>
</body>
</html>