隐藏具有特定类$.each、for等的元素的有效方法

Efficient way of hiding elements with certain classes $.each, for, etc

本文关键字:for 元素 方法 有效 each 隐藏      更新时间:2023-09-26

我有一个用类填充的数组。我需要在这个数组中循环,并隐藏具有该特定类的任何元素。

// Array of classes
// hide.length ~ 100

这是我目前的意思:

// Hide all elements with these class names
$.each(hide, function(key, filter_class){
  $('li.'+filter_class, '.result_row_items').hide();
});

我相信这将是一种更有效(性能方面)的方式:

for(i=0;i<hide.length;i++){
  $('li.'+hide[i], '.result_row_items').hide();
}

这会更好吗?

// Create string of class names
var classes = '';
for(i=0;i<hide.length;i++){
  classes += 'li.'+ hide[i] + ', '
}
// Remove trailing comma and space
classes = classes.substring(0, classes.length - 2);
$(classes, '.result_row_items').hide();

这样的东西怎么样?

$("li." + hide.join(",li."), ".result_row_items").hide();

演示:http://jsfiddle.net/B9fXP/

也许是这样的?

$(hide).filter('.class').hide();

for (var i = 0; class = classes[i++];) {
    $('li.'+ class).hide();
}