第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

計時器函數(shù)為什么不能在js里直接用 函數(shù)名() 調(diào)用

<script type="text/javascript">
? var num=1;

? function startCount() {
? document.getElementById("count").value=num;
??? num=num+1;
??? setTimeout(startCount,1000);
? }
??? startCount();
?// setTimeout("startCount()",1000);
</script>


正在回答

3 回答

你如果這樣子調(diào)用,需要把這段代碼放在</body>之前。就像這樣:

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>計時器</title>

</head>

<body>

<form>

<input type="text" id="count" ?/>

</form>

<script type="text/javascript">

? var num=1;

? function startCount() {

? document.getElementById("count").value=num;

? ? num=num+1;

? ? setTimeout(startCount,1000);?

? }

? ? startCount();

?// setTimeout("startCount()",1000);?

</script>

</body>

</html>

具體原因:

首先,這里script位置在代碼前面,按照頁面加載順序,從上往下;

如果用?startCount(),當(dāng)加載到document.getElementById('count')這一句的時候,并不能獲取到body里面的元素(因為還沒加載到),所以會報錯;

因為如果用?setTimeout("startCount()",1000),意思延遲1秒鐘再去執(zhí)行startCount函數(shù),在這1秒鐘內(nèi),body里面的元素已經(jīng)加載完畢,再去執(zhí)行startCount函數(shù)就能夠正常執(zhí)行document.getElementById('count');

這就是原因,改進(jìn)辦法很簡單,直接將整個<script>放到</body>上方即可


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

AaronWell

請問為什么要在函數(shù)外面用到setTimeout("startCount()",1000)
2016-11-28 回復(fù) 有任何疑惑可以回復(fù)我~
#2

老友丶 回復(fù) AaronWell

你如果不調(diào)用,那么函數(shù)第一次在哪里執(zhí)行?。?HTML中也沒有事件。意思你寫的js代碼毫無用處。
2016-11-29 回復(fù) 有任何疑惑可以回復(fù)我~

請問為什么要在函數(shù)外面用到setTimeout("startCount()",1000)

0 回復(fù) 有任何疑惑可以回復(fù)我~

6666

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

計時器函數(shù)為什么不能在js里直接用 函數(shù)名() 調(diào)用

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號