什么';这是最快、最有效的切换方式>;10000个带有Javascript/jQuery的复选框?

什么';这是最快、最有效的切换方式>;10000个带有Javascript/jQuery的复选框?,javascript,jquery,html,dom,optimization,Javascript,Jquery,Html,Dom,Optimization,我有一个div,里面有10000多个复选框 现在,作为技术限制,我有10000个复选框。它不会也不会改变。这不是家庭作业 项目1 这个jQuery代码在按下特定按钮时激活 $('.select-all').click(function () { $(this).parent().find(':checkbox:visible').prop('checked', true).change(); }); $('.unse

我有一个
div
,里面有10000多个复选框

现在,作为技术限制,我有10000个复选框。它不会也不会改变。这不是家庭作业


项目1

这个jQuery代码在按下特定按钮时激活

        $('.select-all').click(function () {
            $(this).parent().find(':checkbox:visible').prop('checked', true).change();
        });

        $('.unselect-all').click(function () {
            $(this).parent().find(':checkbox:visible').prop('checked', false).change();
        });

        $('.select-inverse').click(function () {
            $(this).parent().find(':checkbox:visible').click();
        });
(忽略
:可见的部分,因为可以过滤列表)

当复选框的数量达到数千个时,整个过程会变得太慢,尤其是当需要切换约10000个复选框时


我想知道是否有一种更快(不一定更好)的方法可以同时切换所有复选框(主要用于全选/全选,因为反向选择可以完全删除)

好的,我知道你有多喜欢我的10000个复选框,所以自从我最近切换到50000个复选框后,我想发布一个答案会很有趣(也许我会得到足够的反对票,让我一直坚持到一页上100000个复选框的最终目标)

自上次以来,我将HTML更新为:


项目1
字幕
这是按钮的代码,现在可以在2-4秒内操作50000个复选框:


$('.全选')。单击(函数(){
//我们选中所有可见的复选框
$(this).parent().find(':checkbox:visible').prop('checked',true);
//这里的其他代码调用函数来处理.change()的删除
});
$('.unselect all')。单击(函数(){
//我们取消选中所有可见复选框
$(this).parent().find(':checkbox:visible').prop('checked',false);
//这里的其他代码调用函数来处理.change()的删除
});
$('.select inverse')。单击(函数(){
//我们取消选中可见的,选中的,然后选中可见的,未选中的
$(this).parent().find(':checkbox:visible').prop(“checked”,函数(i,val){
返回!val;
});
//此处调用函数以处理删除的其他代码。单击()
});
唯一改变的是,我们删除了.change(),并添加了一些代码,一旦所有复选框都被操作,这些代码就会复制它的功能


这使得您能够在平均1-2秒和3-4秒的时间内选中/取消选中50000个复选框。

@nickpapoutsis因为如果您在一个页面上需要10000个复选框,您可能会遇到一个问题,需要通过其他方法来解决。也许有更好的方法来实现您的需要。@nickpapoutsis如果是某种类型的话对于批量列表,如果您希望能够对其执行批量操作,最好将结果分页为每页50-100页,并使用单独的单行批处理操作,其中一个选择框用于“全部”或“选中”,另一个用于选择操作。@nickpapoutsis我明白了,但我仍然可以问“为什么”?这将提供有价值的上下文。在帮助同事时,这也是我在现实生活中的第一个问题。这听起来非常错误,以至于我认为上下文是至关重要的。@nickpapoutsis好吧,分页是存在的,特别是对于这样的情况。更不用说检查所有的分页了,即使是DOM渲染也需要相当长的时间。我已经处理了数百万条记录ted具有分页功能,可过滤,并且仍然可以批量操作。通过最新添加的内容,如果您在页面上提供服务,您应该知道您的过滤器是什么。您可以使用“过滤”选项,而不是“全部”或“选定”,它将对当前结果应用您想要的任何内容,因为如果您可以检索它们,您也可以查询它们以进行更新。@NickPaOutsis-您仍然可以使用类优化选择器,我感觉您隐藏的复选框可能属于一个元素,该元素包含一个类,该类详细说明它已被隐藏。第一步是尝试optimi调整选择器。第二步是显示为什么要在所有这些复选框上手动调用
change
——您必须设置侦听器?我打赌,您可以通过更好的授权来解决这个问题。