最简洁的代码,可以参考一下!

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

慕村6055097

2020-04-21 14:23

function checkall(){

            var hobby = document.getElementsByTagName("input");

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

               if(hobby[i].name == "hobby"){

                   hobby[i].checked = true;

               }

           }

        }

        function clearall(){

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

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

                if(hobby[i].name == "hobby"){

                    hobby[i].checked = false;

                }

           }

        }

        function checkone(){

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

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

            if(hobby){

                hobby.checked = true;

            }else{

                alert("没有改选项");

            }

        }


写回答 关注

2回答

  • 蜘蛛侦探reg
    2022-04-11 10:49:14

    最后一个checkone功能没写好,多选功能没有👍

  • 慕村6055097
    2020-04-21 14:32:15

    给大家讲解一下
    1.getElementsByTagName("input");

    这个会拿到所有是input标签,我们只需要标签name是"hobby"的,所以循环的时候要判断name是否等于"hobby"

    if(hobby[i].name == "hobby") 如果等于就通过 hobby[i].checked = true; 选中

    2.getElementsByName("hobby"); 与上边同理

    3.getElementById("hobby" + j); 这段话是基于题目硬性要求所写的,1-6选中,对应name的值

    if(hobby) 这个判断是 判断当前元素是否为空,打比方,你写个7,咱肯定获取不到元素,因为复选框只有6个,如果元素不等于空则证明存在,存在就选中。这个判断和上边getElementById("hobby" + j)配合特别好


    云备胎

    题目还要求判断是否是复选项吧?

    2020-05-13 14:40:00

    共 1 条回复 >

JavaScript进阶篇

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

467397 学习 · 21877 问题

查看课程

相似问题