问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

求解!求解!求解!

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


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

提问者:极客GHOST 2015-04-07 14:10

个回答

  • lymo
    2015-04-07 14:35:58

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

  • 极客GHOST
    2015-04-07 14:34:34

    <!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>

  • 牙尖十怪
    2015-04-07 14:32:53

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

  • 极客GHOST
    2015-04-07 14:21:04

    等于没回复

  • The丶end又一个末神
    2015-04-07 14:18:59

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