这是我的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>

09-20 15:33