<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv = "Content-type" content = "text/html; charset = gb2312" />
<title>时钟的动态情况</title>
<script type = "text/javascript">
function clock_12h() {
document.write("<h2>CSDN论坛欢迎您!<h2/>");
document.write("<br/>");
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var date = today.getDate();
var day = today.getDay();
var hh = today.getHours();
var mm = today.getMinutes();
var ss = today.getSeconds();
switch (day) {
case 0:
day = "星期日";
break;
case 1:
day = "星期一";
break;
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
break;
default:
day = "error";
break;
}
document.getElementById("myclock").innerHTML = ("<h2>今天是:" + year + "年" + month + "月" + date + "日" + " " + hh + ":" + mm + ":" + ss + " " + day + "<h2/>")
}
var MyTimer = setInterval("clock_12h()", 1000);
</script>
</head>
<body >
<div id = "myclock"></div>
</body>
</html>
这样写会报错,说什么行: 45
错误: 无法设置属性“innerHTML”的值: 对象为 null 或未定义,
如果把这行代码:
document.getElementById("myclock").innerHTML = ("<h2>今天是:" + year + "年" + month + "月" + date + "日" + " " + hh + ":" + mm + ":" + ss + " " + day + "<h2/>")
改成这样的话:
document.write("<h2>今天是:" + year + "年" + month + "月" + date + "日" + " " + hh + ":" + mm + ":" + ss + " " + day + "<h2/>")
就行了,但。。。问题又出现了时间不会动啊,是静止的。相当于这句代码没写。
var MyTimer = setInterval("clock_12h()", 1000); 哎。。。到底是什么回事? 找了好久没找出原因, 各位帮忙改改代码,感激不尽啊。
------解决方案--------------------
HTML是从上到下解释执行的,解释到.innerHTML那一句时div都没生成当然会出错了
另外document.write会覆盖原来的所有代码,包含script的,所以当然就不再执行了
- HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "Content-type" content = "text/html; charset = gb2312" /> <title>时钟的动态情况</title> </head> <body > <div id = "myclock"></div> <script type = "text/javascript"> function clock_12h() { var today = new Date(); var year = today.getFullYear(); var month = today.getMonth() + 1; var date = today.getDate(); var day = today.getDay(); var hh = today.getHours(); var mm = today.getMinutes(); var ss = today.getSeconds(); switch (day) { case 0: day = "星期日"; break; case 1: day = "星期一"; break; case 2: day = "星期二"; break; case 3: day = "星期三"; break; case 4: day = "星期四"; break; case 5: day = "星期五"; break; case 6: day = "星期六"; break; default: day = "error"; break; } document.getElementById("myclock").innerHTML = ("<h2>今天是:" + year + "年" + month + "月" + date + "日" + " " + hh + ":" + mm + ":" + ss + " " + day + "<h2/>") } var MyTimer = setInterval("clock_12h()", 1000); </script></body> </html>