2017-09-07 49 views
0

我想写的代码在JavaScript中有一个计时器开始在“100”并倒数1,直到它命中0.不过,由于某种原因,因为我尽快调用startTimer( ),在切换到“NaN”之前,它会短暂显示“100”。任何解决方案这里是我的代码:JavaScript的倒数计时器去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; 
} 
+0

元素的'innerHTML'内容无法通过'值检索财产。 – Pointy

回答

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>

0

我换成.innerHTML与.innerText在您的例子,它的工作:

<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>