亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

首先需要第一次調用startCount()?

var num=0;
? function startCount() {
??? document.getElementById('count').value=num;
??? num=num+1;
??? setTimeout("startCount()", 1000);
? }
? startCount();

這樣寫有什么錯誤?

正在回答

3 回答

這樣寫理論上來說是沒錯的,但你忽略了個問題,就是里面有句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>


2 回復 有任何疑惑可以回復我~
#1

LFWen 提問者

非常感謝!
2016-10-08 回復 有任何疑惑可以回復我~
#2

慕粉3138817

為啥把把“ window.setTimeout(startCount,1000);”這一行改成“window.setTimeout(”startCount()“,1000); ”就運行不了了呢?
2016-11-15 回復 有任何疑惑可以回復我~

按道理來講,也是可以運行的,要是運行不起來,可能是哪塊大小寫寫錯了。

0 回復 有任何疑惑可以回復我~

num的值會一直疊加下去吧,因為num的賦值在函數外面,調用函數時不會將num清空。

0 回復 有任何疑惑可以回復我~
#1

LFWen 提問者

這一行: 寫startCount()運行不了, 改成setTimeout("startCount()", 1000)可以運行
2016-09-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

首先需要第一次調用startCount()?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號