`
flashdream8
  • 浏览: 667973 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS全选checkBox最佳方案

阅读更多
input type="button" name="" value="不计算长度" onclick="a()">
 <input type="button" name="" value="全选" onclick="b()">
 <input type="button" value="缓存"  onclick="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>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics