我是HTML和JavaScript的新手,正在尝试以下代码。
<!DOCTYPE html>
<html>
<head>
<script>
function displayTime() {
var elem = document.getElementById("clock");
var now = new Date();
if(elem == null) alert("NO clock element");
elem.innerHTML = now.toLocaleString();
setTimeout(displayTime, 1000);
}
window.onload = displayTime();
</script>
</head>
<body>
<h1>Digital Clock</h1>
<span id="clock"></span>
</body>
</html>
在上面的代码中,我试图使用span元素实现数字时钟,并每1秒更新一次时间。
但是我看到的是span元素上的
getElementById
总是返回null,无法设置它。我的目的不是实现时钟,而是学习JavaScript。
请帮我在这里我做错了吗?
最佳答案
问题:window.onload = displayTime();
您将函数displayTime
的返回值保存在window.onload
中,并且在加载窗口时,无论该窗口如何运行。但是displayTime
返回null。您不能运行null。
您要查找的是window.onload = displayTime;
,因为您希望displayTime
在窗口加载时运行。
并且由于您要立即调用displayTime(在加载窗口之前),因此跨度尚不存在。