加入已经选中的jQuery元素

时间:2016-12-12 09:31:35

标签: jquery dry

我知道要避免在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);

有没有办法让2个世界中最好的?

这是我心中想到的一些伪代码。

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

1 个答案:

答案 0 :(得分:0)

也许不出所料,您使用add

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