Jquery - 我不应该重复选择器(存储在变量中)吗?

Mat*_*hew 3 javascript jquery

有时我发现自己多次重复选择器.我应该以某种方式将jquery对象存储到变量然后只使用那个?作为一个简单的例子,以下是什么?:

$('a.contactus').css('padding', '10px');
$('a.contactus').css('margin', '4px');
$('a.contactus').css('display', 'block');
Run Code Online (Sandbox Code Playgroud)

现在我知道这不是一个很好的例子,因为有效地你可以链接每个css函数.但是假设每一个都是条件性陈述或某些东西阻止你链接.

我可以在变量中存储jquery对象吗?如果是这样,我什么时候可以?

Nic*_*ver 12

当重复使用它(并且你不能链)将它存储在一个变量中并不是一个坏主意,它使用的次数越多或者选择器越贵,将它作为变量存储就越好.例如性能$(this)几次是微不足道的,但表现$("[attr=val]")非常差,如果再使用绝对应该被缓存.如果有疑问,请将其缓存为变量.


只是另一个提示,在该示例中,您还可以将对象传递给.css():

$('a.contactus').css({ padding: '10px', margin: '4px', display: 'block' });
Run Code Online (Sandbox Code Playgroud)