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

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

為什么for循環在函數里不起作用?

<!DOCTYPE?HTML>
<html>
????<head>
????????<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312">
????????<title>無標題文檔</title>
????</head>
????<body>
????????<form>
??????????請選擇你愛好:<br>
??????????<input?type="checkbox"?name="hobby"?id="hobby1">??音樂
??????????<input?type="checkbox"?name="hobby"?id="hobby2">??登山
??????????<input?type="checkbox"?name="hobby"?id="hobby3">??游泳
??????????<input?type="checkbox"?name="hobby"?id="hobby4">??閱讀
??????????<input?type="checkbox"?name="hobby"?id="hobby5">??打球
??????????<input?type="checkbox"?name="hobby"?id="hobby6">??跑步?<br>
??????????<input?type="button"?value?=?"全選"?onclick?=?"checkall();">
??????????<input?type="button"?value?=?"全不選"?onclick?=?"clearall();">
??????????<p>請輸入您要選擇愛好的序號,序號為1-6:</p>
??????????<input?id="wb"?name="wb"?type="text"?>
??????????<input?name="ok"?type="button"?value="確定"?onclick?=?"checkone();">
????????</form>
????????<script?type="text/javascript">
????????function?checkall(){
???????????var?hobby?=?document.getElementsByTagName("input");
?????????????for(var?i=0;i<hobby.length;i++){
???????????????document.write(hobby[i].type+"<br/>");
?????????????}
????????}
????????</script>
????</body>
</html>

點擊全選checkall()后,只輸出一個checkbox。我把for循環放到函數外,就會輸出所有的type?

正在回答

3 回答

因為如果不是自動運行,文檔流結束,當點擊時,document.write會清除當前頁面所有內容,然后for循環中第一次能獲取input,輸出document,第二次for循環頁面已經一篇空白除了剛才輸出的內容,因此獲取不到input,自然無法繼續循環輸出

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

青燈行 提問者

非常感謝!
2016-11-14 回復 有任何疑惑可以回復我~

關注一下

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

應該是hobby[i].nodeType

還有這里用getElementsByName("hobby")比較好,這樣就能獲取所有的復選框了

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

青燈行 提問者

這里是題目要求獲取TagName并驗證復選項的。另外改成nodeType后依然輸出一個,只是輸出的“checkbox”變成了1,放到函數外就是10個1,問題依然在。
2016-11-03 回復 有任何疑惑可以回復我~
#2

慕粉3233872 回復 青燈行 提問者

不知道是怎么回事了,放到函數外能正確輸出說明方法沒錯,你是把checkall()方法里面的內容一起放到函數外輸出的嗎?
2016-11-03 回復 有任何疑惑可以回復我~
#3

青燈行 提問者 回復 慕粉3233872

對,一個是點擊checkal()運行,一個是自動運行。
2016-11-03 回復 有任何疑惑可以回復我~
#4

慕粉3233872 回復 青燈行 提問者

你在document.write(hobby[i].nodeType+"<br/>");這句話后面加上document.write("-----");看這句話出現幾次,看到底是循環終止了,還是只是沒輸出
2016-11-03 回復 有任何疑惑可以回復我~
#5

青燈行 提問者 回復 慕粉3233872

一次。
2016-11-03 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

為什么for循環在函數里不起作用?

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

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

幫助反饋 APP下載

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

公眾號

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