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

分享一下三种方法做任务3

<!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">  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")&&document.getElementsByName("hobby");

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

           hobby[i].checked = true;

            }

           

        }

        function clearall(){

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

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

              hobby[i].checked= false;

            }

         // 任务2    

            

        }

        

        function checkone(){

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

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

           //switch和if差不多但是switch更加简洁 但是都比较繁琐, 太多选项就不能用了

           switch(j){

             case '1' : hobby[0].checked= true;

             break;

             case '2' : hobby[1].checked= true;

             break;

             case '3' : hobby[2].checked= true;

             break;

             case '4' : hobby[3].checked= true;

             break;

             case '5' : hobby[4].checked= true;

             break;

             case '6' : hobby[5].checked= true;

             break;

             default:alert('only have 6 options')

           }

        }

        //用循环做 暂时感觉最好的办法

      /*          function checkone(){

            clearall();

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

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

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

              hobby[(j.charAt(i))-1].checked=true; 

                if( j<1||j>6 ){

                   alert('over limit')

                 }

            }    

            

        }*/

        

        //用ID方法做 这种方法局限性比较大而且不够智能

   /*      function checkone(){

   clearall();

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

            var hobby = document.getElementById("hobby"+j);

            if (j<1||j>6){

              alert('over limit')

            }

            hobby.checked = true;

            

        }*/

        

        

        </script>

    </body>

</html>


正在回答

3 回答

为啥要用for循环啊 不用也是可以实现啊


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

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

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

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

    if(i == j-1) {

        hobby[i].checked = "checked"

    }

}

hobby本身是个数组,只要选中的数字-1等于数组下标就找到了那个hobby,完事

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

筱熙X

不需要用循环加判断 if(j <= hobby.length) { hobby[j-1].checked = true ; } 就可以了
2020-11-08 回复 有任何疑惑可以回复我~

大家一起来分享一下其他方法吧


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

举报

0/150
提交
取消

分享一下三种方法做任务3

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