这是我的JavaScript代码,我在Chrome浏览器中对其进行了检查,但没有出现错误
window.onload = function() {
var timeClock = function (){
setTimeout("timeClock()", 1000);
var timeObj = new Date();
var currTime = timeObj.getHours(); + " : " + timeObj.getMinutes(); + " : " + timeObj.getSeconds();
document.getElementById("#clock-container").innerHTML = "asd";
}
}
我正在尝试使用当前系统时间更新此div
<div id="clock-container"></div>
最佳答案
您有多种逻辑和其他错误。
您正在尝试注册回调,但是您的setTimeout
在回调本身中。将setTimeout("timeClock()", 1000);
移动到回调之外。
大概您还想用setTimeout
替换setInterval
以使时钟不断更新,并且还避免在回调中调用setTimeout
。
也没有理由使用字符串来调用timeClock
,因此请使用setInterval(timeClock, 1000);
来避免代码评估的弊端。document.getElementById("#clock-container")
应该是document.getElementById("clock-container")
。
您的currTime
表达式有几个;
不属于它们,请修复它们,然后可以使用此变量而不是字符串。
您也可以在加载后立即调用timeClock
,以避免等待第一个间隔。
工作示例:
window.onload = function() {
var timeClock = function (){
var timeObj = new Date();
var currTime = timeObj.getHours() + " : " + timeObj.getMinutes() + " : " + timeObj.getSeconds();
document.getElementById("clock-container").innerHTML = currTime;
}
setInterval(timeClock, 1000);
timeClock();
}
<div id="clock-container"></div>