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

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

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("没有改选项");

            }

        }


提问者:慕村6055097 2020-04-21 14:23

个回答

  • 蜘蛛侦探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)配合特别好