优化复选框的 jQuery 选择器

Optimizing jQuery selector for checkboxes

本文关键字:选择器 jQuery 复选框 优化      更新时间:2023-09-26

我有一个这样的选择器

$('.left_checkboxes:not(.Deleted,:hidden)').prop('checked', $(this).is(':checked'));

这对浏览器来说真的很痛苦,并且需要花费大量时间来检查所有这些复选框(例如,列表中大约 20-25 个复选框需要 3 秒)。

所以我尝试像这样优化它:

$(left_checkboxes + ':hidden').prop('checked', $(this).is(':checked'));

其中 left_checkboxes = $('.left_checkboxes');

我也试过:

left_checkboxes.filter(':hidden').prop('checked', $(this).is(':checked'));

但是没有运气。我的这两个甚至根本不起作用...不知道为什么。有什么想法吗?

重要的是选择器$('.left_checkboxes')不应该在后面代码的每次迭代中执行......

var left_checkboxes = $('.left_checkboxes');

然后后来

left_checkboxes.not('.Deleted,:hidden').prop('checked', $(this).is(':checked'));