hobby[parseInt(j)-1].checked=true; 求問解釋
<!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<bobby.length;i++){
?????????????? hobby[i].checked=true;
?????????? }
??????? }
????? ?
??????? function clearall(){
??????????? var hobby = document.getElementsByName("hobby");
?????????? ?
???????? for(var i=0;i<hobby.length;i++){
???????????? hobby[i].checked=false;
???????? }// 任務2?????? ?
??????? }
?????? ?
??????? function checkone(){
??????????? var j=document.getElementById("wb").value;
?????? ?
???????? for(var i=0;i<hobby.length;i++)// 任務3
????????? if(parseInt(j) > 6 || parseInt(j)? < 1? ){
??????????????????? alert("不在此范圍內,請重新輸入!")
??????????????????? // document.write(j);
??????????????? }
??????????? }
??????????? var hobby = document.getElementsByName("hobby");??? ?
??????????? hobby[parseInt(j)-1].checked=true;
??????? }
?????? ?
??????? </script>
??? </body>
</html>
加粗部分的parseInt(j)-1 應該怎么解釋?
為啥要用parseInt這個函數??????????????????????????????? 感激不盡·····
2016-08-23
應該是防止出現小數吧,要是輸個3.3咋辦,用parseInt(j)轉成整數了,就安全唄,
hobby[parseInt(j)-1樓上樓上也說了,就是因為數組的下標是從0開始的,但我們看復選框是從1開始數的,即我們看到的第一個復選框 對應 數組里面下標為0的內容
2016-08-19
parseInt() 函數可解析一個字符串,并返回一個整數。
2016-08-15
很容易理解,你輸入的是1-6對應數組0-5,當然要減一
其實可以不用parseInt也可以,因為會自動轉換格式。當然用了從邏輯上更加說得過去,因為j得到的是個字符型的,要把它變為整型才可以做運算,當然做減法時會自動轉為整型(加法不行)