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

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

為什么不能無限調用?是不是編輯器問題?

<!DOCTYPE HTML>

<html>

<head>

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

<title>計時器</title>

<script type="text/javascript">

? var num=0;

? function startCount() {

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

? ? num=num+1;

? ? document.write(num);

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

? }


</script>

</head>

<body>

<form>

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

<input type="button" id="kaishi" value="start" onclick="startCount()"/>

</form>

</body>

</html>


正在回答

4 回答

不可以使用 document.write 在這個 function 里面, js是一個從上到下的執行語言,第一次執行function時由于有document.write 的原因 原始html文件中的 <form></form>中的所有代碼 被 function中的document.write(num); 抹去并替代 所以js 將無法找尋到 id 為 count 的 <input />標簽, 從而無法將value 賦給 <input />.

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

刪去 document.write(num);

如一樓所說,在你的實例里,已經實現了無限循環,只是文本框被覆蓋了沒有顯示;

詳細點說,當你點擊start按鈕時,你的文本框和按鈕消失了,只顯示了1,并不是沒有無限調用,而是被document.write(num)輸出的“1”覆蓋,而不顯示了。

?不要隨意使用document.write(),在HTML文檔加載完成后,執行document.write()輸出語句會覆蓋所有已加載完成的HTML元素,只顯示?document.write()輸出內容——也就是案例里顯示的“1”。


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

不要在function StartCount里 寫任何輸出 ,比如你寫的document.write(num);? 我們寫StartCount函數的目的只是單純的為了修改文本框的值,如果你寫了輸出語句,瀏覽器會顯示輸出語句的內容,但是文本框就不會顯示出來了,你就看不到文本框中數字的變化。?

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

settimeout就是用來調一次的 ? 無限調用的要用setinterval

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

舉報

0/150
提交
取消

為什么不能無限調用?是不是編輯器問題?

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

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

幫助反饋 APP下載

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

公眾號

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