倒数计时器只倒计时 1 秒然后停止
Countdown Timer only counts down 1 second then stops
我的倒数计时器只倒数一秒就停止了。我正在制作一个有倒计时时钟的游戏,如果答案永远不正确,则会增加更多时间。我只是无法让计时器工作。
var secondsLeft = document.getElementById("timer").textContent;
var timer = setInterval(function() {
secondsLeft = 120;
secondsLeft--;
document.getElementById("timer").textContent = secondsLeft;
}, 1000);
我想我可能需要创建一个 for 循环,但我读过的所有内容都说我可以在没有循环的情况下做到这一点。
谢谢!
如果#timer 元素中有时间值,则您正在覆盖函数中的 secondLeft。然后你可以通过这样做来使用它的值:
var secondsLeft = parseInt(document.getElementById("timer").textContent);
您需要先转换它,因为 textContent 的字符串类型不能使用减法运算符。
所以对于答案,您可以使用以下内容:
var secondsLeft = parseInt(document.getElementById("timer").textContent);
var timer = setInterval(function () {
secondsLeft--;
document.getElementById("timer").textContent = secondsLeft;
}, 1000);
成功了! :D
var secondsLeft = 120;
var timer = setInterval(function() {
secondsLeft--;
document.getElementById("timer").textContent = secondsLeft;
}, 1000);
<span id="timer"></span>
您将 secondsLeft
重置回 120,方法是将其置于计时器函数中。
我的倒数计时器只倒数一秒就停止了。我正在制作一个有倒计时时钟的游戏,如果答案永远不正确,则会增加更多时间。我只是无法让计时器工作。
var secondsLeft = document.getElementById("timer").textContent;
var timer = setInterval(function() {
secondsLeft = 120;
secondsLeft--;
document.getElementById("timer").textContent = secondsLeft;
}, 1000);
我想我可能需要创建一个 for 循环,但我读过的所有内容都说我可以在没有循环的情况下做到这一点。 谢谢!
如果#timer 元素中有时间值,则您正在覆盖函数中的 secondLeft。然后你可以通过这样做来使用它的值:
var secondsLeft = parseInt(document.getElementById("timer").textContent);
您需要先转换它,因为 textContent 的字符串类型不能使用减法运算符。
所以对于答案,您可以使用以下内容:
var secondsLeft = parseInt(document.getElementById("timer").textContent);
var timer = setInterval(function () {
secondsLeft--;
document.getElementById("timer").textContent = secondsLeft;
}, 1000);
成功了! :D
var secondsLeft = 120;
var timer = setInterval(function() {
secondsLeft--;
document.getElementById("timer").textContent = secondsLeft;
}, 1000);
<span id="timer"></span>
您将 secondsLeft
重置回 120,方法是将其置于计时器函数中。