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

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

js進階9.4中的問題

<!DOCTYPE HTML>

<html>

? ? <head>

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

? ? ? ? <titlntsByName,getElementsBe>無標題文檔</title>

? ? </head>

? ??

? ? <body>

? ? ? ? <form>

? ? ?

? ? ?請選擇你愛好:<br>

? ? ? ? ? <input type="checkbox" name="hobby" id="hobby1"> ?1音樂

? ? ? ? ? <input type="checkbox" name="hobby" id="hobby2"> ?2登山

? ? ? ? ? <input type="checkbox" name="hobby" id="hobby3"> ?3游泳

? ? ? ? ? <input type="checkbox" name="hobby" id="hobby4"> ?4閱讀

? ? ? ? ? <input type="checkbox" name="hobby" id="hobby5"> ?5打球

? ? ? ? ? <input type="checkbox" name="hobby" id="hobby6"> ?6跑步 <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");

? ? ? ? ??

? ? ? ? ? // 任務1?

? ? ? ? for(var i=0;i<hobby.length;i++)

? ? ? ? {

? ? ? ? ?if(hobby[i].type == "checkbox")

? ? ? ? ?{

? ? ? ? ? ? hobby[i].checked = true;

? ? ? ? ?}

? ? ? ? }

?

? ? ? ? }

? ? ? ? function clearall(){

? ? ? ? ? ? var hobby = document.getElementsByName("hobby");

? ? ? ? ? ??

? ? ? ? ?// 任務2 ? ?

? ? ? ? ? for(var i=0;i<hobby.length;i++)

? ? ? ? ? {

? ? ? ? ? ? ?hobby[i].checked = false;

? ? ? ? ? }

? ? ? ? }

? ? ? ??

? ? ? ? function checkone(){

? ? ? ? ? ? var j=document.getElementById("wb").value;

? ? ? ? ?// 任務3

? ? ? ? ? ? var hobby = document.getElementById("hobby"+j)//要提問的部分;

? ? ? ? ? ? hobby.checked = true;

? ? ? ? }

? ? ? ??

? ? ? ? </script>

? ? </body>

</html>

題目任務1.在第27行處補充完整,實現當點擊"全選"按鈕時,將選中所有的復選項。

提示:document.getElementsByTagName("input")獲取的是所有input標簽,包括復選項和按鈕,所以要判斷是否是復選項,如是選中。

2.在第33行處補充完整,實現當點擊"全不選"按鈕時,將取消所有選中的復選項。

3.在第40行處補充完整,在文本框中輸入輸入1-6數值,當點擊"確定"按鈕時,根據輸入的數值,通過id選中相應的復選項。

問題:1.代碼中hobby+j hobby代表的是一個數組 而j是輸入的數字,那hobby+j代表啥???

? ? ? ?2.把任務三寫成hobby[j-1].checked=true;為什么不行???

正在回答

3 回答

?var hobby = document.getElementById("hobby"+j)//要提問的部分;

? ? ? ? ? ? hobby.checked = true;

首先 ?j代表的是 ?文本框輸入的內容 ?數字 1-6

變量hobby ?表示的是獲取 id為hobby1-6的元素?

“hobby”是字符串 ??"hobby"+j ?的意思是hobby后面緊跟著的內容是j ??

當j=1 是 ? ?他表示的是 ?字符串 “hobby1” ?和上面的id相對應

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

hobby是一個數組,j是文本框的value,所以,hobby+j毫無意義。

其次,你把hobby加上引號,"hobby"它就不再是數組,而是字符串.再一個你把hobby[j-1].checked=true中的j用轉成整形試一試。這是我的代碼,希望對你有所幫助

function checkone(){

? ? ? ? ? ? var j=document.getElementById("wb").value;

? ? ? ? ? ? var hobby=document.getElementsByName("hobby");

? ? ? ? ? ? for(var i=0;i<hobby.length;i++){

? ? ? ? ? ? ? ? hobby[i].checked=false;

? ? ? ? ? ? ? ? if(hobby[i].id.indexOf(j)>-1){

? ? ? ? ? ? ? ? ? ? hobby[i].checked=true;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

0 回復 有任何疑惑可以回復我~
  1. 注意hobby與"hobby"區別,hobby是Id為("hobby"+j)的對象,"hobby"是個字符串,"hobby"+j ?還是個字符串

  2. 注意getElementById與getElementsByName的區別,前者獲得一個對象,后者獲得對象的集合,也就是你說的數組的表現,如果hobby=document.getElementsByName("hobby"),hobby[j-1].checked=true;就對了


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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468969    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

js進階9.4中的問題

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

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

幫助反饋 APP下載

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

公眾號

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