在jQuery中隐藏缓存的对象

时间:2011-03-23 13:29:12

标签: javascript jquery hide objectinstantiation

我不确定“缓存”是否适用于此版本。也许我应该使用“实例化”。但是,我想要“缓存”几个对象,以节省一些资源:

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

现在,如果我想隐藏它们,我可以使用单行代码而不是:

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

我认为这个很简单(读作:“愚蠢”),但是嘿......我不能自己解决这个问题......

5 个答案:

答案 0 :(得分:4)

您还可以使用.add()汇总一堆jQuery对象和选择器:

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

答案 1 :(得分:1)

你可以使用这样的东西:

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

如果您为许多身份证明这样做,可能会执行以下操作:

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

然后稍后访问“缓存”,如cache['foo']

答案 4 :(得分:0)

为所有这些元素定义一个类,然后按类隐藏

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