使用某些类$ .each,for等隐藏元素的有效方法

时间:2012-08-22 14:27:56

标签: javascript jquery

我有一个填充了类的数组。我需要循环遍历此数组并隐藏具有该特定类的任何元素。

// 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();

2 个答案:

答案 0 :(得分:0)

这样的事情怎么样?

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

DEMO: http://jsfiddle.net/B9fXP/

答案 1 :(得分:0)

也许是这样的?

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

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