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

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

這樣寫,startCount()為什么不能自動執行?

<!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);
? }
?? startCount();

</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>

正在回答

3 回答

這是因為你的js在執行時,下面的input輸入框還沒有生成 ,所以就報錯了,你可以這樣試一下,把js代碼放到下面

<!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=0;
????function?startCount()?{
????????document.getElementById('count').value=num;
????????num=num+1;
????????setTimeout("startCount()",1000);
????}
????startCount();
</script>
</body>
</html>


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

steve_samuelson 提問者

非常感謝!
2016-01-02 回復 有任何疑惑可以回復我~
#2

steve_samuelson 提問者

但是這樣分析,為什么下面的代碼又能夠正常運行?大神再幫忙看下!
2016-01-02 回復 有任何疑惑可以回復我~

我也是對這一點有疑惑,百度了半天,沒找到,回頭一看這里有。

李曉健的回答很好,我這樣理解:定義完成后直接調用startCount正如你所說,不正確,因為<body>部分還沒有加載。所以直接調用不正確。按照這種理解,我再<input.....>后面增加了<script type="text/javascript">startCount();</script>竟然真的可以通過。

? ? 這就說明,setTimeout();函數,是第一個參數的javascript語句延遲執行,而不是該函數下面的javascript語句也停下來等待執行。僅僅是延遲一段時間執行本函數語句內第一個參數內容。

? ??

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

<!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);
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>

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

李曉健

因為你這里的代碼是,是讓js在1s以后執行呀,1s以后頁面html代碼早就執行完了,所以input也早就生成了。
2016-01-02 回復 有任何疑惑可以回復我~
#2

李曉健 回復 李曉健

上面說錯了,是 startCount 這個方法在1s以后執行,不是js
2016-01-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這樣寫,startCount()為什么不能自動執行?

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

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

幫助反饋 APP下載

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

公眾號

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