2

我不确定“缓存”是否是这个的正确术语。也许我应该改用“实例化”。但是,假设我想“缓存”几个对象,以节省一些资源:

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

现在,如果我想隐藏它们,我可以使用单线代替:

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

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

4

5 回答 5

4

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

$foo.add( $bar ).add('.someclass').add( $other_objects_or_selectors ).hide();
于 2011-03-23T13:38:02.130 回答
1

你可以使用这样的东西:

$.each([$foo, $bar], function(i, v) { 
  v.hide(); 
});
于 2011-03-23T13:34:43.587 回答
0

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

$('#foo').addClass('toHide'); 
//Later
$('.toHide').filter(':visible').hide();
于 2011-03-23T13:46:45.243 回答
0

如果您要为许多 id 执行此操作,则可以执行以下操作:

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

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

于 2011-03-23T13:39:09.893 回答
0

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

$("#foo, #bar").hide();
于 2011-03-23T13:32:18.117 回答