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

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

請問為什么無法實現?

<!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,100);

? }

? startCount();

</script>

</head>

<body>

<form>

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

</form>

</body>

</html>


正在回答

3 回答

這種寫法沒有問題,問題出在javascript的加載機制上,當你在調用document.getElementById('count').value=num;的時候,下面的input還沒加載,所以執行不了。

解決辦法就是將整體的script代碼塊下移到</form>下面。

下面是我改了之后的代碼:

<!DOCTYPE HTML>
<html>
<head>
? ?<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
? ?<title>計時器</title>
</head>

</head>
<body>
<form>
? ?<input type="text" id="count" />
</form>
<script type="text/javascript">
? ?var num=1;
? ?function startCount() {
? ? ? ?document.getElementById('count').value=num++;
? ? ? ?setTimeout("startCount()",1000);
? ?}
? ?startCount();
</script>
</body>
</html>

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

乘蓄媛z 提問者

謝謝大牛,可以簡單和我介紹下javascript的加載機制順序或者html加載順序嗎?
2016-08-01 回復 有任何疑惑可以回復我~
#2

乘蓄媛z 提問者

謝謝大牛啦~~
2016-08-01 回復 有任何疑惑可以回復我~
#3

宗晟 回復 乘蓄媛z 提問者

不客氣,大家共同進步! HTML的加載順序是逐行解析,而且遇到JS代碼時會立即執行,所以當你有操作元素節點的js代碼最好放在body后面
2016-08-01 回復 有任何疑惑可以回復我~
#4

李逍遙lh

不是指執行一次嗎
2016-08-14 回復 有任何疑惑可以回復我~
#5

qq_武林新秀_0

多謝啊
2016-08-17 回復 有任何疑惑可以回復我~
#6

王阿阿阿阿阿阿然 回復 宗晟

想問下,把 startCount();換成setTimeout("startCount()",1000); 為什么就不涉及加載機制的問題了,是因為setTimeout是在解析完所有HTML代碼之后解析的對么?求解,謝謝啦
2016-08-17 回復 有任何疑惑可以回復我~
查看3條回復

樓上回答的很好

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

setTimeout("startCount()",100);,調用函數寫法不對,應該是startCount(),并且在settimeout引用的時候加“”

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

乘蓄媛z 提問者

也不行噢
2016-08-01 回復 有任何疑惑可以回復我~
#2

宗晟 回復 乘蓄媛z 提問者

我說的那個你可以試試,我剛才也試了好大一會,在瀏覽器的控制臺中發現了報錯的地方
2016-08-01 回復 有任何疑惑可以回復我~
#3

宗晟

最原來的那個你可以使用setTimeout("startCount",1000)延遲一秒加載,當html文檔加載以后再去調用這個方法就沒有問題了
2016-08-01 回復 有任何疑惑可以回復我~
#4

乘蓄媛z 提問者 回復 宗晟

我發現如果使用document.write這樣的系統語句好像就不會產生這樣的現象,就像你說的一樣,當前這種情況,我在獲取ID信息如果在后面都會無法實現。
2016-08-01 回復 有任何疑惑可以回復我~
#5

乘蓄媛z 提問者 回復 宗晟

“setTimeout”這個是指在html文檔在全部加載完畢以后再調用的嗎?
2016-08-01 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

請問為什么無法實現?

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

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

幫助反饋 APP下載

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

公眾號

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