加入 jQuery 个已选择的元素

Join jQuery elements that are already selected

我知道要避免在 DOM 树上进行多次搜索,保存所选元素以提高性能是个好主意

var $el = $(".el");
$el.show();
...
...
$el.show();
...
...
$el.on('click', function(){...});

但是现在我有几个项目在变量中分开,我想有时对其中几个进行相同的操作,有时对它们进行不同的操作。我当然可以这样做:

var $button1 = $('.button1');
var $button2 = $('.button2');
...
...
$button1.on('click', doSomething);
$button2.on('click', doSomethingDifferent);
...
...
$button1.css(newStyles);
$button2.css(newStyles);

但是这样一来,我的代码就不是很干了。

如果我不遵循将它们保存到变量中的方法,我的代码会变得更加枯燥,但效率会降低

$('.button1').on('click', doSomething);
$('.button2').on('click', doSomethingDifferent);
...
...
$('.button1, .button2').css(newStyles);

有没有办法兼得两个世界的优点?

这是我想到的一些伪代码..

var $button1 = $('.button1');
var $button2 = $('.button2');
var $buttons = $.group($button1, $button2);
...
...
$button1.on('click', doSomething);
$button2.on('click', doSomethingDifferent);
...
...
$buttons.css(newStyles);

也许不足为奇,您使用 add:

$button1.add($button2).add($button3).doSomething();