JS全选checkBox最佳方案

input type="button" name="" value="不计算长度" οnclick="a()">
 <input type="button" name="" value="全选" οnclick="b()">
 <input type="button" value="缓存"  οnclick="c()">
  <input type="checkbox" name="test[]" value="0"> 测试测试<br>
   <script language="JavaScript">
 <!--
    var ca = new Array();
    function a()
    {
        var m = document.getElementsByName('test[]');
        for ( var i=0; i< m.length ; i++ )
        {
            m[i].checked == true
                ? m[i].checked = false
                : m[i].checked = true;
        }
    }

    function b()
    {
        var m = document.getElementsByName('test[]');
        var l = m.length;
        for ( var i=0; i< l; i++)
        {
            m[i].checked == true 
                ? m[i].checked = false
                : m[i].checked = true;
        }
    }

    function c()
    {
        if (ca.length == 0)
        {
            ca = cache();
        }
        cl = ca.length;
        for ( var i=0; i< cl; i++)
        {
            ca[i].checked == true 
                ? ca[i].checked = false
                : ca[i].checked = true;
        }
    }

    function cache()
    {
        var m = document.getElementsByName('test[]');
        var cache = new Array();
        var l = m.length;
        for ( var i=0; i< l; i++)
        {
            cache[i] = m[i];
        }
        return cache;
    }

 //-->
 </script>

 

 

       至于那个input type="checkbox"的,你们就尽量复制吧,尽量不要超过1W,否则。。别怪我没有提醒你,当然了,也不需要把浏览器关掉,跑到外面抽根烟再回来就行了。

     所以,我们要切实的记住,反正数组有长度的,坚决不能放在循环里面,而是先将这个长度取出来当成变量。PHP里也一样,循环数组的时候,先count数组的长度比较好。
       当然了,我第三个采用了缓存,速度也是非常快的,比长度取好后再进行计算更快,因为连一次都不用取了(当然,除了第一次),全部扔给客户端了。

     上面的例子还是比较方便的,因为,checkbox的 name值都一样,如果不一样怎么办???
只能这样

 

script language="JavaScript">
 <!--
    function check()
    {
        var inputs = document.getElementsByTagName('input');
        var inputsLen = inputs.length;
        for (var i = 0; i < inputsLen ; i++ )
        {
            if (inputs[i].type.toLowerCase() == 'checkbox')
            {
                inputs[i].checked == true 
                    ? inputs[i].checked = false
                    : inputs[i].checked = true;
            }
        }
    }
 //-->
 </script>

 

 

缓存方法同上,这里就不多讨论了

<转自:http://www.cnitblog.com/neatstudio/archive/2007/10/17/35006.html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值