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

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>


正在回答

1 回答

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

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

qq_我本非凡_1 提问者

非常感谢!
2017-04-04 回复 有任何疑惑可以回复我~
#2

qq_我本非凡_1 提问者

用数组名hobby不是可以代表整个数组吗
2017-04-04 回复 有任何疑惑可以回复我~
#3

SHsama 回复 qq_我本非凡_1 提问者

var hobby = document.getElementsByName("hobby");这里的hobby 就相当于一个数组,要想清空不是一下子就置空的,就像数组一样,你要输出一个数组难道是直接输出arr就能得到里面的所有数据?还不是遍历输出。所以是hobby[i].checked=false;而不是hobby.checked=false;
2017-04-04 回复 有任何疑惑可以回复我~
#4

SHsama 回复 qq_我本非凡_1 提问者

var hobby = document.getElementsByName("hobby");这里的hobby 接受document.getElementsByName("hobby")返回的一个集合。
2017-04-04 回复 有任何疑惑可以回复我~
#5

qq_我本非凡_1 提问者 回复 SHsama

哦,我知道了
2017-04-04 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

javascript进阶篇9-4

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