我正在尝试在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;
}
答案 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>