為什么這樣寫不行?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計時器</title>
</head>
<script type="text/javascript">
? var num=0;
? function startCount() {
??? document.getElementById('count').value=num;
??? num=num+1;
??? setTimeout("startCount()",1000);
? }
startCount();
</script>
</head>
<body>
<form>
<input type="text" id="count"/>
</form>
</body>
</html>
2016-12-05
因為解析HTML文檔是從上往下解析的,所以執行JS代碼的時候,HTML的DOM結構還沒有構建好,就無法得到相應節點。
解決辦法1:整個js代碼放在</body>標簽之前。
解決辦法2:設置延時操作。
startCount(); --》? setTimeout("startCount()",1000);?
等待的1s時間中 DOM已經搭建完成。