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

求解!求解!求解!

   var hobby = document.getElementsByName("hobby");
        hobby[parseInt(j)-1].checked=true;


这两句不太明白     第一句是取这个元素的name赋值给 hobby 后面这句  -1 是什么意思

正在回答

6 回答

第一句获取name是hobby的element,得到的是一个数组,然后第二句通过下标parseInt(j)-1取出checked的属性并赋值true,-1是因为数组的下标是从0开始的

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

极客GHOST 提问者

怎么不是+1呀, 有点懂了
2015-04-07 回复 有任何疑惑可以回复我~
#2

lymo 回复 极客GHOST 提问者

j是1~6,对应数组的下标应该是0~5,那不-1吗
2015-04-07 回复 有任何疑惑可以回复我~
#3

极客GHOST 提问者 回复 lymo

对~ 谢谢帮我解惑!
2015-04-07 回复 有任何疑惑可以回复我~

<!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;               
           }
          // 任务1
           
        }
        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;
            if(parseInt(j)>6||parseInt(j)<1)
            {
                alert("请输入1-6之间的数字");
            }
         // 任务3
            var hobby=document.getElementsByName("hobby");
            hobby[parseInt(j)-1].checked=true;
        }
        
        </script>
    </body>
</html>

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

hobby[parseInt(j)-1].checked=true,这一句起的作用是判断是否被选中。  其中,hobby[parseInt(j)-1] 是一个数组。parseInt的作用是强制把字符串转换成数字,因为有的时候我们得到的数字其实是一个字符串,不能进行算术操作,小括号里面的 j ,也只是一个传值的参数,后面这个 -1,只是一个减去1的算术操作罢了,至于为什么要减去1,那得看程序的具体需求了。

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

极客GHOST 提问者

前面我都理解,就是为什么要减去1 有点不太明白
2015-04-07 回复 有任何疑惑可以回复我~
#2

牙尖十怪 回复 极客GHOST 提问者

因为数组的下标是从0开始的呗。你得到的第一个值,用数组表示是hobby[0],第二个则是hobby[1], so~~~一般在做for循环的时候,你循环第一次,i=1,那么数组的下标就应该是hobby[parseInt(1)-1].checked=true
2015-04-07 回复 有任何疑惑可以回复我~

等于没回复

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

-1就是-1,  意思说2-1=1、 1 -1=0  

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

极客GHOST 提问者

你觉得我是在问这个意思吗
2015-04-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468047    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

求解!求解!求解!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信