jQuery优化高效过滤,然后将类添加到多个元素

时间:2014-07-20 08:19:39

标签: javascript jquery performance jquery-filter

给定一个元素列表,我需要按一些属性进行过滤,并将类添加到符合条件的属性中。

由于数据集可能很大,我只是想知道一种方式是否比另一种更快

假设listOfElement被赋予并且由许多元素组成,我还想返回说出每个限定元素的值

方法1:

for(var i = 0; i < listOfElement.length ; i ++){
    if ( testing condition ) {
        $(listOfElement[i]).addClass("blah");
        selected.push(listOfElement[i];
    }
}

方法2:

selected = listOfElement.filter(...);
$(selected).addClass("blah")

我想知道$选择操作和addClass操作的性能开销。如果有人可以指向一些JavaScript指南以获得更好的性能(例如,使用hide / show比插入/删除DOM更快),那将是很棒的。

1 个答案:

答案 0 :(得分:0)

原生JavaScript通常(如果不总是)比jQuery更快,因为jQuery涉及创建$个对象。

var selected = listOfElement.filter(function (item) {
    // ...
});

// Add class
selected.forEach(function (item) {
    item.classList.add('blah'); 
    // If you need to support IE 9 or lower:
    // item.className += ' blah'; // note the space in front of the class name
});
您可能会对

This jsPerf感兴趣。