如何让JavaScript倒计时器正常工作

3
我正在尝试使用Javascript实现一个简单的计时器,并在HTML页面中显示计时器。这是我的代码:
var minutesLabel = document.getElementById("minutes");
var secondsLabel = document.getElementById("seconds");
var totalSeconds = 0;
setInterval(setTime, 1000);

function setTime()
{
    ++totalSeconds;
    secondsLabel.innerHTML = pad(totalSeconds%60);
    minutesLabel.innerHTML = pad(parseInt(totalSeconds/60));
}

function pad(val)
{
    var valString = val + "";
    if(valString.length < 2)
    {
        return "0" + valString;
    }
    else
    {
        return valString;
    }
}

HTML:

<label id="minutes">00</label>
    <label id="colon">:</label>
    <label id="seconds">00</label>

但在 HTML 中计时器无法运作,它会一直停留在 00:00

尝试使用 setInterval()。您可以在这里了解它。 - myjobistobehappy
你能展示完整的HTML页面吗?我已经复制了相同的代码,它对我来说运行良好。<script type="text/javascript" src="yourfile.js"></script> - Sagar Rana Magar
是的,这段代码在片段中可以工作,但出于某种原因,在我的端上它不起作用。 - efuzz
3个回答

2

确保脚本在body标签底部


1

你发布的代码完全按照你所描述的方式工作。

查看这个示例, 我只是复制粘贴了它。

.

是的,这段代码在片段中可以工作,但出于某种原因,在我的端上它不起作用。 - efuzz
那么你代码的其他部分一定有错误。你能否请检查你的控制台? - anpel
是的,我最初将脚本放在了<body>标签的开头。不过后来得把它移到了<body>标签的结束处。 - efuzz
@efuzz确实, getElementById(或任何其他获取DOM节点的函数)除非节点已经存在,否则将不起作用。您可以将脚本移动到body的底部,或将其包装在onload函数中。 - anpel

0

你提到的代码在片段中完美运行。


是的,这段代码在片段中可以工作,但出于某种原因,在我的端上它不起作用。 - efuzz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接