javascript - jQuery 中更改 JS 元素集合的哪种方式更快

标签 javascript jquery performance

我有一个想要实现的全选按钮。哪种方式更快?

$('.check-box').prop('disabled', false).trigger('change');

或者

$('.check-box').each(function(index, element){
    $(element).prop('disabled', false).trigger('change');
});

在用户界面中他们做同样的事情。 看起来第二个不仅按类名选择,而且还选择每个元素,这是一个 O(MN) 操作。但是第一种方法是否有可能只是在幕后执行第二种方法所做的事情(尽管这将使第一种方法更有利,因为它的代码更少,加载时间更快)?

最佳答案

大多数 jQuery 方法都有一个内部 each,基本上看起来像:

// $.fn is where chainable methods reside 
$.fn.methodName = function(){

   // "this" is the jQuery object that contains collection of elements 
   // returned by either $(selector) or prior method in chain

   // return "this" for chaining and loop over all elements in collection
   return this.each(function(){
       // "this" is individual element instance

       // do same thing to each element here
   });
}

这就是 $('.check-box').prop('disabled', false).trigger('change'); 将如何影响 class= 的所有元素“复选框”

关于javascript - jQuery 中更改 JS 元素集合的哪种方式更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55545491/

相关文章:

php - 从 LinkedIn 导入 RSS 源?

Javascript 书签 IE8

javascript - 如何销毁 Nestable.js 列表?

javascript - 下拉自动完成

c# - 如何反序列化复选框值的 JSON 数据?

sql - SQL计算并发事件数

java - 使用向后兼容性编译的 java 类是否使用更新版本的 JavaVM 优化?

javascript - 如何检查嵌套对象是否是另一个不使用 jQuery 的对象的后代

c++ - 简单 C++ 'Hello World' 程序执行时间长

javascript - 使用 jQuery 更新输入值属性