手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

JS全选checkBox最佳方案

首页 > Javascript >
XML/HTML代码
  1. <input type="button" name="" value="不计算长度" onclick="a()">  
  2. <input type="button" name="" value="全选" onclick="b()">  
  3. <input type="button" value="缓存"  onclick="c()">  
  4. <input type="checkbox" name="test[]" value="0"> 测试测试<br>  
  5. <script language="JavaScript">  
  6. <!--   
  7. var ca = new Array();   
  8. function a()   
  9. {   
  10.     var m = document.getElementsByName('test[]');   
  11.     for ( var i=0; i< m.length ; i++ ){   
  12.         m[i].checked = !m[i].checked;    
  13.     }   
  14. }   
  15.   
  16. function b(){   
  17.     var m = document.getElementsByName('test[]');   
  18.     var l = m.length;   
  19.     for ( var i=0; i< l; i++){   
  20.         m[i].checked = !m[i].checked;    
  21.     }   
  22. }   
  23.   
  24. function c(){   
  25.     if (ca.length == 0){   
  26.         ca = cache();   
  27.     }   
  28.     cl = ca.length;   
  29.     for ( var i=0; i< cl; i++){   
  30.         ca[i].checked = ! ca[i].checked;   
  31.     }   
  32. }   
  33.   
  34. function cache(){   
  35.     var m = document.getElementsByName('test[]');   
  36.     var cache = new Array();   
  37.     var l = m.length;   
  38.     for ( var i=0; i< l; i++){   
  39.         cache[i] = m[i];   
  40.     }   
  41.     return cache;   
  42. }   
  43. //-->  
  44. </script>  

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

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

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

JavaScript代码
  1. <script language="JavaScript">   
  2.  <!--   
  3.     function check(){   
  4.         var inputs = document.getElementsByTagName('input');   
  5.         var inputsLen = inputs.length;   
  6.         for (var i = 0; i < inputsLen ; i++ ){   
  7.             if (inputs[i].type.toLowerCase() == 'checkbox') {   
  8.                 inputs[i].checked = !inputs[i].checked;   
  9.             }   
  10.         }   
  11.     }   
  12.  //-->   
  13.  </script>   



本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

1条记录访客评论

这篇文章帮了我大忙了,谢谢了

Post by 蚊子 on 2011, February 19, 10:42 PM 引用此文发表评论 #1


发表评论

评论内容 (必填):