Javascript 无法使用';getElementById';在';span';HTML元素
我不熟悉HTML和JavaScript,正在尝试以下代码Javascript 无法使用';getElementById';在';span';HTML元素,javascript,html,Javascript,Html,我不熟悉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.i
<!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>
函数displayTime(){
var elem=document.getElementById(“时钟”);
var now=新日期();
如果(elem==null)警报(“无时钟元素”);
elem.innerHTML=now.toLocaleString();
设置超时(显示时间,1000);
}
window.onload=displayTime();
数字钟
在上面的代码中,我尝试使用span元素实现一个数字时钟,并每1秒更新一次时间。
但是我可以看到span元素上的getElementById
总是返回null,并且无法设置它。
我的目标不是实现时钟,而是学习JavaScript。
请帮帮我这里做错了什么?问题:
window.onload=displayTime()代码>
您正在将函数displayTime
的返回值保存在窗口中。onload
,当窗口确实加载时,它会运行任何内容。但是displayTime
返回null。您不能运行null
你要找的是window.onload=displayTime代码>,因为您希望在加载窗口时运行displayTime
由于您正在立即调用displayTime(在加载窗口之前),所以跨度还不存在。问题是:window.onload=displayTime()代码>
您正在将函数displayTime
的返回值保存在窗口中。onload
,当窗口确实加载时,它会运行任何内容。但是displayTime
返回null。您不能运行null
你要找的是window.onload=displayTime代码>,因为您希望在加载窗口时运行displayTime
而且,由于您正在立即调用displayTime(在窗口加载之前),因此跨度还不存在。这是因为您正在调用而不是将displayTime
分配给onload
使用
而不是
window.onload = displayTime();
基本上是当你说window.onload=some
时,它计算some
并将其值等于window.onload
因此,您将说displayTime()
它将在加载窗口之前调用函数,因此它根本不会得到span
。这是因为您正在调用,而不是将displayTime
分配给onload
使用
而不是
window.onload = displayTime();
基本上是当你说window.onload=some
时,它计算some
并将其值等于window.onload
因此,您将说displayTime()
它将在加载window
之前调用函数,因此它根本不会得到span
。
检查这个Jsbin文件。
我刚刚删除了();from window.onload=显示时间;以及它的工作原理
检查这个Jsbin文件。
我刚刚删除了();from window.onload=显示时间;以及它的工作原理 看起来你的代码没有问题。看起来你的代码没有问题。