首先需要第一次調用startCount()?
var num=0;
? function startCount() {
??? document.getElementById('count').value=num;
??? num=num+1;
??? setTimeout("startCount()", 1000);
? }
? startCount();
這樣寫有什么錯誤?
var num=0;
? function startCount() {
??? document.getElementById('count').value=num;
??? num=num+1;
??? setTimeout("startCount()", 1000);
? }
? startCount();
這樣寫有什么錯誤?
2016-09-29
舉報
2016-10-08
這樣寫理論上來說是沒錯的,但你忽略了個問題,就是里面有句document.getElementById('count').value=num;
這個是要取得html中的元素,而這時頁面元素還沒加載進來,腳本語言就出錯了,當然沒值顯示(原因是html先執行順序從上到下,在這里,先執行head再執行body中的內容),如果你硬要這么寫的話,寫在onload="function"對應的函數里吧(文檔加載完畢后執行)!看代碼:
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"> <title>計時器</title> </head> <script?type="text/javascript"> function?load(){ ??var?num=0; ??function?startCount()?{ ????document.getElementById('count').value=num; ????num=num+1; ????window.setTimeout(startCount,1000); ??} ??startCount();//這句啟動不來原因是文檔還沒加載完畢,放在onload后執行 } ?? </script> </head> <body?onload="load()"> <form> <input?type="text"?id="count"?/> </form> </body> </html>2016-09-29
按道理來講,也是可以運行的,要是運行不起來,可能是哪塊大小寫寫錯了。
2016-09-29
num的值會一直疊加下去吧,因為num的賦值在函數外面,調用函數時不會將num清空。