Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用时钟重复javascript函数_Javascript_Date_Time_Repeat - Fatal编程技术网

如何使用时钟重复javascript函数

如何使用时钟重复javascript函数,javascript,date,time,repeat,Javascript,Date,Time,Repeat,我刚刚开始学习javascirpt,我正在尝试制作自己的时钟小部件。当我使用ourDate.toLocalString时,它似乎只显示调用函数时的时间。所以我想我必须每秒钟不断地重复这个函数,这样它才能持续保持当前时间。但我的问题是,当我启动脚本时,它只会重复函数一次。我做错了什么?代码如下: function updateclock(){ ourDate = new Date(); document.write(ourDate.toLocaleString()); } function st

我刚刚开始学习javascirpt,我正在尝试制作自己的时钟小部件。当我使用ourDate.toLocalString时,它似乎只显示调用函数时的时间。所以我想我必须每秒钟不断地重复这个函数,这样它才能持续保持当前时间。但我的问题是,当我启动脚本时,它只会重复函数一次。我做错了什么?代码如下:

function updateclock(){
ourDate = new Date();
document.write(ourDate.toLocaleString());
}

function startclock() {
updateclock();
setInterval("updateclock()", 1000); 
}

您要改为执行此操作:

setInterval(updateclock, 1000);

您要改为执行此操作:

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>
另外:不要将字符串传递给setInterval或setTimeout,而是传递函数名。

问题是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>

另外:不要将字符串传递给setInterval或setTimeout,而是传递函数名。

这应该有效。但是:不要将字符串用作setInterval和该族的第一个参数,请使用函数值本身:setInterValueUpdateClock,1000。哦,不要使用document.write-如果您正在调试,请使用console.log,或者使用document.createElement或jQuery进行实际工作。这应该可以工作。但是:不要将字符串用作setInterval和该族的第一个参数,请使用函数值本身:setInterValueUpdateClock,1000。哦,不要使用document.write-如果您正在调试,请使用console.log,或者使用document.createElement或jQuery进行实际工作。相同的内容但没有evalsame内容但没有evalAwesome bfavareto!就这样。非常感谢你。也谢谢你的建议。尽管我不完全理解它,但我将研究这个编码,看看它是如何工作的。现在,继续用css设计它的样式,使它看起来像我想要的一样。@TonyWilkerson关于setInterval的建议,.Awesome bfavaretto!就这样。非常感谢你。也谢谢你的建议。尽管我不完全理解它,但我将研究这个编码,看看它是如何工作的。现在,使用css对其进行样式化,使其符合我的要求。@TonyWilkerson关于setInterval建议。