2011-04-21 49 views
0
$("#search-by-id-wrapper, #searchforit, #findbyid, #search-block-form .container-inline").toggle(); 

哪個更有效?

$("#search-by-id-wrapper").toggle(); 
$("#searchforit").toggle(); 
$("#findbyid").toggle(); 
$("#search-block-form .container-inline").toggle(); 
+1

只有兩種方式來回答這個問題 - 理論上還是基準。 #1無用,你應該自己做#2! – Alnitak 2011-04-21 09:39:41

+2

這很可能不是問題,因爲選擇器將以相同的方式解決。 – 2011-04-21 09:40:20

+1

基準,讓我們知道;)http://stackoverflow.com/questions/1003855/howto-benchmark-javascript-code – kovshenin 2011-04-21 09:41:01

回答

1

與灒,jQuery的選擇庫中的匆匆一瞥,它使用逗號反正豆腐塊選擇串...

因此我的直覺說,這將是更快地使用第一種形式,甚至更好,所以如果你緩存選定的jQuery對象。

var $searchThings = null; 
/* ..... */ 
function toggleSearchThings() { 
    $searchThings = $searchThings || $("#search-by-id-wrapper, #searchforit, #findbyid, #search-block-form .container-inline"); 
    $searchThings.toggle(); 
} 
0

即使有輕微的性能差我懷疑由於字符串是最有可能的分裂和多個getElementById呼叫在這兩種情況下(但是,後一種情況下產生,而不是4中使用1個jQuery包裝器對象),這很可能是可以忽略的。

所以你應該使用後者,因爲它更具可讀性。