给定一个元素列表,我需要根据一些属性进行过滤,并向符合条件的属性中添加一个类。
由于数据集可能很大,我想知道其中一种方法是否比另一种方法更快
假设给定了listOfElement并由许多元素组成,我还想返回每个限定元素的值
方法1:
for(var i = 0; i < listOfElement.length ; i ++){
if ( testing condition ) {
$(listOfElement[i]).addClass("blah");
selected.push(listOfElement[i];
}
}方法二:
selected = listOfElement.filter(...);
$(selected).addClass("blah")我想知道$选择操作和addClass操作的性能成本。如果有人能为我提供一些JavaScript指南的文档以获得更好的性能(例如,使用隐藏/显示比插入/删除DOM更快),那就太好了
发布于 2014-07-20 16:25:54
原生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感兴趣。
https://stackoverflow.com/questions/24848645
复制相似问题