为了账号安全,请及时绑定邮箱和手机立即绑定

第48-51这个for循环的内容不太懂?

第48-51这个for循环的内容不太懂?

想要飞的鱼儿 2016-04-18 21:33:10
这段代码主要实现在文本框内输入 上面6个爱好的对应的1-6的序号,可以将其打钩选中,可是我理解他怎么觉得他吧1-j(即输入的数字)之间的的爱好全选中了?可事实证明我的理解是错的<!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++){               hobby[i].checked=true;           }        }        function clearall(){            var hobby = document.getElementsByName("hobby");            for(var i=0;i<hobby.length;i++){                hobby[i].checked=false;            }        }                      function checkone(){            clearall();            var hobby = document.getElementsByName("hobby");            var j=document.getElementById("wb").value;            for(var i=0;i<j.length;i++){                if(j.charAt(i)>6 || j.charAt(i)<1){                    alert("越界,请重新输入!");                    document.getElementById("wb").value="";                }            }                for(var n=0;n<j.length;n++){                                           hobby[(j.charAt(n))-1].checked=true;                 }                                }                </script>    </body></html>
查看完整描述

2 回答

?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

他这个是多选的,所以你文本框里可以填写123456表示全选,填写123表示选择前面三个。

那最后一个for循环就是把你填写的123456里的每一个数字对应的复选框选中。他要把你输入的每个字符都遍历一次。

查看完整回答
1 反对 回复 2016-04-18
  • 想要飞的鱼儿
    想要飞的鱼儿
    我知道这个意思,我不理解的是 hobby[(j.charAt(n))-1].checked=true; ,假如输入的是3,那岂不是第1,2,3个框都被选中了?可事实选中的是j 作为下标的框
  • qq_青枣工作室_0
    qq_青枣工作室_0
    输入3就是遍历3啊。输入"146"就是遍历1,4,6。他是按输入的每个字符来看的。
  • qq_青枣工作室_0
    qq_青枣工作室_0
    j就是你输入的值。例如:j="146",那j.charAt(n)就是把1,4,6逐个取出来,再把第1个,第4个,第6个选框选中
?
想要飞的鱼儿

TA贡献2条经验 获得超0个赞

也就是最后一个函数的最后一个for循环


查看完整回答
反对 回复 2016-04-18
  • 2 回答
  • 0 关注
  • 1182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信