2011-03-23 123 views
2

我不确定“缓存”对于这个缓存是否正确。也许我应该使用“实例化”。不过,说我要“缓存”几个对象,以节省一些资源:在jQuery中隐藏缓存的对象

var $foo = $("#foo"), 
$bar = $("#bar"); 

现在,如果我想隐藏起来,我可以用一个班轮代替:

$foo.hide(); 
$bar.hide(); 

我认为这个很简单(读:“愚蠢”),但嘿...我不能自己弄清楚...

+1

隐藏你试过吗? (是的,你可以) – 2011-03-23 13:32:22

+0

http://www.bash.org/?3936 =) – aL3xa 2011-03-23 14:12:45

回答

4

您还可以使用.add()卷起一堆jQuery对象和选择的:

$foo.add($bar).add('.someclass').add($other_objects_or_selectors).hide(); 
+0

感谢'.add()'。它拯救了一天! =) – aL3xa 2011-03-23 14:13:50

0

你可以有多个选择器在jQuery中用逗号分隔:

$("#foo, #bar").hide(); 
+0

当然,但我想结合实例化的对象,像'$。($ foo,$ bar).hide()' – aL3xa 2011-03-23 14:04:15

1

你可以使用这样的事情:

$.each([$foo, $bar], function(i, v) { 
    v.hide(); 
}); 
0

如果你这样做了很多的ID,也许做类似的东西:

items = ['foo', 'bar']; 
cache = {}; 
$.each(items, function(i,key) { 
    cache[key] = $('#' + key); 
    cache[key].hide(); 
}); 

然后稍后访问'缓存'像cache['foo']

0

定义一个类为所有这些元素,然后由类

$('#foo').addClass('toHide'); 
//Later 
$('.toHide').filter(':visible').hide(); 
+0

类选择器比id选择器慢。我总是可以定义一个班,但这是一个不可能的恕我直言。 – aL3xa 2011-03-23 14:10:10