请各位大佬帮忙,这错哪了

来源:9-4 区别getElementByID,getElementsByName,getElementsByTagName

weixin_慕容4133732

2019-02-03 11:24

<!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<6;i++){
               if(hobby[i].type=="checkbox"){
                   hobby[i].checked=true;
               }
           }
          // 任务1
           
        }
        function clearall(){
            var hobby = document.getElementsByName("hobby");
          for(var i=0;i<6;i++){
               if(hobby[i].type=="checkbox"){
                   hobby[i].checked=false; 
         // 任务2   
           
        }
       
        function checkone(){
            var j=document.getElementById("wb").value;
            switch (j) {
    case 1:
    document.getElementById("hobby1").checked = true;
    break;
    case 2:
    document.getElementById("hobby2").checked = true;
    break;
    case 3:
    document.getElementById("hobby3").checked = true;
    break;
    case 4:
    document.getElementById("hobby4").checked = true;
    break;
    case 5:
    document.getElementById("hobby5").checked = true;
    break;
    case 6:
    document.getElementById("hobby6").checked = true;
    break;
   }
         // 任务3
       
        }
       
        </script>
    </body>
</html>

写回答 关注

3回答

  • 侠4327791
    2019-03-02 16:45:47

    把任务三switch里面的1,2,3,4,5,6全部改成"1","2","3","4","5","6"

  • knightpy
    2019-02-19 19:15:58

    第三种试试这个

    function checkone(){

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

            

             // 任务3

                var newi = parseInt(j);

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

                if(newi >arr.length)

                {

                    alert("超出边界!!!")

                }else

                {

                    //通过序号, 去数组里面遍历寻找

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

                    {

                        arr[i].checked = false;

                    }

                    //

                    arr[newi-1].checked = true;

                }

                

                // document.write(arr);

                // document.getElementByName("hobby").[newi].checked == true;

            }


  • 糖炒烤鸭
    2019-02-03 20:26:22

    任务一TagName为Input的不止6个,还是全部遍历比较好

    任务三种 function checkone(){
                var j=document.getElementById("wb").value;。应该用parseInt()函数把字符串类型的数字转化为int类型

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题