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

javascript进阶篇9-4

     <script type="text/javascript">

        function checkall(){

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

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

           if(hobby[i].type=="checkbox"){

               hobby[i].checked=true;

           }

        } 

           

        }

        function clearall(){

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

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

            hobby[i].checked=false;}

        /*这里为什么不能直接hobby.checked=false;而要通过for循环*/

            

        }

        

        function checkone(){

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

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

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

         

        

        }

        

        </script>


提问者:qq_我本非凡_1 2017-04-04 09:31

个回答

  • SHsama
    2017-04-04 11:30:59
    已采纳

    因为getElementsByName()方法获取的Name值不是唯一的,可以重复,它所返回的是一个集合(可类比数组来理解),不像getElementById()获得的是唯一的ID值就用hobby.checked=false这样的写法,所以要想实现全不选按钮,那么要一个一个的置为false(即hobby[i].checked=false;),而要想一个一个的置为false就要遍历这个集合,所以通过for循环来遍历。