最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

為什么不能在script中運(yùn)行 startCount();而是要加setTimeout("startCount()",1000);

<!DOCTYPE HTML>

<html>

<head>

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

<title>計時器</title>

</head>

<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>


正在回答

3 回答

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

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

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

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

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

weibo_e_狼傳說_0 提問者

非常感謝!原來還有這個細(xì)節(jié)
2016-10-31 回復(fù) 有任何疑惑可以回復(fù)我~
#2

人在夢游中

你好,但是我使用 setTimeout("startCount()"); 也是可以調(diào)用的,這是為什么啊
2016-11-02 回復(fù) 有任何疑惑可以回復(fù)我~
#3

stone310 回復(fù) 人在夢游中

setTimeout("startCount()"); 這樣寫相當(dāng)于 setTimeout("startCount()",0);這么寫的意思是等文檔流穩(wěn)定后,再去執(zhí)行setTimeout,所以可以調(diào)用,往深一點(diǎn)說就是定時器是有一個單獨(dú)的線程,可以達(dá)到變更文檔加載順序的效果,更詳細(xì)可自行上網(wǎng)查閱
2016-11-02 回復(fù) 有任何疑惑可以回復(fù)我~
#4

人在夢游中 回復(fù) stone310

3Q.
2016-11-03 回復(fù) 有任何疑惑可以回復(fù)我~
#5

Tyler_me 回復(fù) stone310

setTimeout("startCount()",0);就是相當(dāng)于onload="startCount()";是吧?
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#6

stone310 回復(fù) Tyler_me

要等onload事件結(jié)束后,再執(zhí)行settimeout里面的事件
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#7

Tyler_me 回復(fù) stone310

懂了,謝謝
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
查看4條回復(fù)

<!DOCTYPE HTML>

<html>

<head>

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

<title>計時器</title>

</head>

<body>

<script type="text/javascript">

? function startCount() {

? ? document.write(0); ??

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

? }

? ? startCount();

</script>

</body>

</html>

//這串代碼只有360極速模式下能一直執(zhí)行寫0。火狐,ie都不行。谷歌沒試過.。這是為什么啊


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

<!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=0;

? function startCount() {

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

? ? num=num+1;

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

? }

? ? startCount();//用了這句話就報錯了

</script>

</body>

</html>

這樣子就可以了,解決辦法參考了

http://www.phpernote.com/javascript-function/1135.html

望采納

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

weibo_e_狼傳說_0 提問者

我還有一個問題想請教請教你
2016-10-31 回復(fù) 有任何疑惑可以回復(fù)我~
#2

老友丶 回復(fù) weibo_e_狼傳說_0 提問者

應(yīng)該沒有了吧,你采納的那位大神已經(jīng)回答得很完美了。
2016-10-31 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么不能在script中運(yùn)行 startCount();而是要加setTimeout("startCount()",1000);

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

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

幫助反饋 APP下載

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

公眾號

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