簡體   English   中英

Jquery - 我不應該重復選擇器(存儲在變量中)嗎?

[英]Jquery - Should I not repeat selectors (store in a variable)?

有時我發現自己多次重復選擇器。 我應該以某種方式將jquery對象存儲到變量然后只使用那個? 作為一個簡單的例子,以下是什么?:

$('a.contactus').css('padding', '10px');
$('a.contactus').css('margin', '4px');
$('a.contactus').css('display', 'block');

現在我知道這不是一個很好的例子,因為有效地你可以鏈接每個css函數。 但是假設每一個都是條件性陳述或某些東西阻止你鏈接。

我可以在變量中存儲jquery對象嗎? 如果是這樣,我什么時候可以?

當重復使用它(並且你不能鏈)將它存儲在一個變量中並不是一個壞主意,它使用的頻率越高或選擇器越昂貴,將它作為變量存儲就越好。 例如, $(this)幾次的性能是微不足道的,但$("[attr=val]")的性能非常差,如果重復使用,應該絕對緩存。 如果有疑問,請將其緩存為變量。


只是另一個提示,在該示例中,您還可以將對象傳遞給.css()

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

我應該以某種方式將jquery對象存儲到變量然后只使用那個?

你應該盡可能為了表現 例如,您可以像這樣重寫代碼:

var $el = $('a.contactus');
$el.css('padding', '10px');
$el.css('margin', '4px');
$el.css('display', 'block');

你可以把它縮短得更短:

$el.css({
  padding: '10px',
  margin:'4px',
  display: 'block'
});

在編寫jquery插件以將$(this)存儲在變量中時,將常用/重復選擇器存儲在變量中也很有用。

你可以這樣做

var myvar = $('a.contactus');
myvar.css('padding', '10px').css('margin', '4px').css('display', 'block');

但為了便於閱讀,我這樣做了

var myvar = $('a.contactus');
myvar.css('padding', '10px')
  .css('margin', '4px')
  .css('display', 'block');

基本上每次使用$(someselector)時,你都會遍歷dom。 如果可以,您應該存儲元素引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM