jsp页面中有多个checkbox,并有一个全选框。
当点击全选的时候,所有的checkbox都选中,不需要单个的去点击每个checkbox。可是问题出现了,当checkbox多(达1000多个 的时候),这里全选非常的慢,有时甚至得10来分钟才能完成。请教下有什么好的实现方法的,还是我checkbox实现方式有问题。
请高手帖出相关的实现模式或是代码。
如果lz采用遍历的方式来实现 估计会很慢
不如这样
用两个变量a和b分别存 所有checkbox全选和全清空时 body的innerHTML
点击全选按钮后,将body的innerHTML替换为a
点击清空后,将body的innerHTML替换为b
这种思想应该可行
如果body的innerHTML替换发生问题
可以讲这些checkbox都放在一个div中,替换div的innerHTML肯定是没有问题的
1000个选取应该不至于这么慢。
是不是拿取方式有问题,如果是jquery,通过样式选取会有性能问题。
getElementsByName()方式获取1000个checkbox,应该还是行的。
[code="js"] var cbs = document.getElementsByName("cb");
for(var i=0;i<cbs.length;i++){
if(cbs[i].checked)
cbs[i].checked = "";
else cbs[i].checked = "checked"
}[/code]
这个速度很快的。
把你自己写的代码粘出来分析看
估计你程序的问题,贴出程序来看看
jquery $(":checkbox").attr("checked", true);
试试看
改成下面的方式,应该更快
ps:实现反选功能
[code="java"]
var cbs = document.getElementsByName("cb");
for(var i=0;i<cbs.length;i++){
//if(cbs[i].checked)
// cbs[i].checked = "";
//else cbs[i].checked = "checked"
cbs[i].checked=!cbs[i].checked
}
[/code]