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

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

函數(shù)直接調(diào)用,為啥不行?

<!DOCTYPE HTML>

<html>

<head>

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

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


<script type="text/javascript">

? var num=0;

? function startCount() {

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

? ? num=num+1;

? ? setTimeout(startCount,1000);?

? }

//這里換成setTimeout(startCount,1000); ,可以

startCount();

</script>

</head>

<body>

<form>

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

</form>

</body>

</html>


正在回答

4 回答

那為什么setTimeout(startCount,1000); 就可以,直接調(diào)用就不行呢

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

https://img1.sycdn.imooc.com//5b83a6720001974c07530186.jpg

為了測(cè)試函數(shù)是否執(zhí)行我把代碼寫成這樣,結(jié)果是只能執(zhí)行一次,而且并沒有成功的獲取到文本框"count"的id。

https://img1.sycdn.imooc.com//5b83a83500010dc602920074.jpg

既然沒有獲取到"count"的id,再看下?document.getElementById('count').value=num;那這句代碼的是不是等同于null.value=null;這樣的用法很明顯是錯(cuò)誤的,所以函數(shù)終止了,并沒有再往下執(zhí)行。為了驗(yàn)證我的推論,注釋掉?document.getElementById('count').value=num;

https://img1.sycdn.imooc.com//5b83a81d0001d57807500180.jpg

結(jié)果是函數(shù)正常執(zhí)行,只是獲取不到"count"的id值,瀏覽器先顯示https://img1.sycdn.imooc.com//5b83a9340001b58f02250053.jpg

隨后動(dòng)態(tài)顯示https://img1.sycdn.imooc.com//5b83a8960001312104000170.jpg

可以看出只有第2次顯示獲取的id有值。所以我猜測(cè)在腳本內(nèi)部以函數(shù)名()方式直接調(diào)用函數(shù)的話,會(huì)獲取不到外部元素的id值,所以你的這段代碼不能動(dòng)態(tài)更新"count"文本框中的值。

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

跟我一起讀_biang

如果這不是正解,希望知道原因的大佬解釋下,我也很好奇。
2018-08-27 回復(fù) 有任何疑惑可以回復(fù)我~

代碼沒錯(cuò)? 把js代碼放在html代碼的后面就可以運(yùn)行

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

昵稱是四聲

這是為什么呢?
2018-08-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

ly今夕何夕 回復(fù) 昵稱是四聲

跟渲染機(jī)制有關(guān)系 我百度了一下 大概意思就是:js的下載和執(zhí)行會(huì)阻塞Dom樹的構(gòu)建(嚴(yán)謹(jǐn)?shù)卣f是中斷了Dom樹的更新),所以script標(biāo)簽放在首屏范圍內(nèi)的HTML代碼段里會(huì)截?cái)嗍灼恋膬?nèi)容。 script標(biāo)簽放在body底部,做與不做async或者defer處理,都不會(huì)影響首屏?xí)r間,但影響DomContentLoad和load的時(shí)間,進(jìn)而影響依賴他們的代碼的執(zhí)行的開始時(shí)間。 最后就是 如果不在外部引入,而在html里面寫script代碼的話 最好放在body底部 這樣不容易出錯(cuò)?。。?/div>
2018-08-19 回復(fù) 有任何疑惑可以回復(fù)我~
#3

昵稱是四聲 回復(fù) ly今夕何夕

謝謝?。。?/div>
2018-09-24 回復(fù) 有任何疑惑可以回復(fù)我~

在js中函數(shù)名可以把它當(dāng)成指針,函數(shù)名加上括號(hào)就代表函數(shù)立即執(zhí)行,這里是把startCount函數(shù)作為定時(shí)器的一個(gè)參數(shù)傳入,如果加上括號(hào)函數(shù)立即執(zhí)行,傳入的參數(shù)就變成了函數(shù)的返回值,所以不能執(zhí)行,望采納 謝謝!。

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

舉報(bào)

0/150
提交
取消

函數(shù)直接調(diào)用,為啥不行?

我要回答 關(guān)注問題