倒数计时器只倒计时 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,方法是将其置于计时器函数中。