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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

我直接調(diào)用函數(shù)startCount()為什么不行呢?

<!DOCTYPE?HTML>
<html>
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
<title>計(jì)時(shí)器</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>

代碼如上。

為什么把startCount()這句換成:setTimeout("startCount()",1000) 就可以?

后面這句代碼的目的,實(shí)際上也是為了調(diào)用函數(shù)啊。

求大神解答~

正在回答

1 回答

js寫(xiě)在head里的話,因?yàn)閔tml文檔在加載的時(shí)候,是從上到下加載的,所以會(huì)先加載js,在js里加載到startCount()時(shí),會(huì)執(zhí)行startCount()函數(shù),但在函數(shù)里有獲取ID的document.getElementById('count'),而此時(shí)body里的內(nèi)容還沒(méi)加載,會(huì)找不到id為count的對(duì)象,所以會(huì)出錯(cuò)。setTimeout()這個(gè)函數(shù)不會(huì)截?cái)嗉虞d的進(jìn)程,而且setTimeout("startCount()",1000)會(huì)在一秒后執(zhí)行,而在這一秒內(nèi)整個(gè)文檔早就加載完成了,就不會(huì)出現(xiàn)上邊找不到的情況。所以可以成功執(zhí)行。

你把script標(biāo)簽和里面的代碼放到</body>前面,就不會(huì)出錯(cuò)了。如:

<!DOCTYPE?HTML>

<html>

<head>

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

<title>計(jì)時(shí)器</title>

</head>

<body>

<form>

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

</form>

<script?type="text/javascript">

??var?num=0;

??function?startCount()?{

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

????num=num+1;

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

??}

??startCount()

</script>

</body>

</html>

ps:話說(shuō)你js實(shí)際上不是寫(xiě)在head里(因?yàn)樵?lt;script>標(biāo)簽前head已經(jīng)結(jié)束了),而是寫(xiě)在head和body之間了(雖然js寫(xiě)在哪兒都行)。

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

秋挽詞

看了這么多解釋為什么有兩個(gè)setTimeout("startCount()",1000)的,就你的看明白了.果然放在后面的話直接調(diào)用就可以,非常感謝`但是為什么我在前面加了window.onload還是不能正常運(yùn)行呢?提示startCount is not defined.
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#2

CHFFOPSAIE 回復(fù) 秋挽詞

startCount沒(méi)有定義? 你是不是window.onload用錯(cuò)了,這樣用試試: window.onload=function(){ var num=0; function startCount() { document.getElementById('count').value=num; num=num+1; setTimeout("startCount()",1000); } startCount(); }
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#3

CHFFOPSAIE 回復(fù) 秋挽詞

window.onload=function(){ startCount(); } var num=0; function startCount() { document.getElementById('count').value=num; num=num+1; setTimeout("startCount()",1000); }
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#4

CHFFOPSAIE 回復(fù) 秋挽詞

第一個(gè)好像不行,第二個(gè)可以。
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#5

秋挽詞 回復(fù) CHFFOPSAIE

startCount();放在前面和后面有什么區(qū)別嗎?我之前就是按你第一個(gè)那樣寫(xiě)的.
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#6

穿越滿天星 提問(wèn)者

謝謝大神!解答很明白。原來(lái)是利用了setTimeout()的滯后功能
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#7

穿越滿天星 提問(wèn)者 回復(fù) CHFFOPSAIE

謝謝大神!解答很明白。原來(lái)是利用了setTimeout()的滯后功能
2016-12-21 回復(fù) 有任何疑惑可以回復(fù)我~
#8

CHFFOPSAIE 回復(fù) 秋挽詞

兩種方法都沒(méi)有錯(cuò),錯(cuò)在setTimeout()的使用上。第一個(gè)里的startCount()函數(shù)是局部變量(在另一個(gè)函數(shù)里),第二個(gè)是全局變量。setTimeout("startCount()",1000)里的startCount帶上了括號(hào)和雙引號(hào),不捕捉局部變量,而如果用setTimeout(startCount,1000)就行了,因?yàn)椴粠щp引號(hào)就可以捕捉局部變量了。
2016-12-22 回復(fù) 有任何疑惑可以回復(fù)我~
#9

秋挽詞 回復(fù) CHFFOPSAIE

原來(lái)如此~非常感謝!!
2016-12-22 回復(fù) 有任何疑惑可以回復(fù)我~
查看6條回復(fù)

舉報(bào)

0/150
提交
取消

我直接調(diào)用函數(shù)startCount()為什么不行呢?

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

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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