我刚刚开始学习javascirpt,并且正在尝试制作自己的时钟小部件。看来当我使用“ ourDate.toLocalString()”时,它仅显示调用该函数时的时间。因此,我想我必须连续不断地每秒重复一次此功能,以使其连续保持当前时间。但是我遇到的问题是,当我启动脚本时,它仅重复执行一次该函数。我究竟做错了什么?下面是代码:
function updateclock(){
ourDate = new Date();
document.write(ourDate.toLocaleString());
}
function startclock() {
updateclock();
setInterval("updateclock()", 1000);
}
最佳答案
问题是document.write
。如果在文档加载后调用它,它将覆盖整个文档,包括您的startclock
函数,该文档将无法再调用。
更新HTML元素的内容:
<div id="clock"></div>
<script type="text/javascript">
function updateclock(){
ourDate = new Date();
document.getElementById("clock").innerHTML = ourDate.toLocaleString();
}
function startclock() {
updateclock();
setInterval(updateclock, 1000);
}
startclock();
</script>
http://jsfiddle.net/Ys87F/
另外:不要将字符串传递给
setInterval
(或setTimeout
),而应传递函数名称。