2013-07-21 79 views
1

對於我的問題,我需要先寫一些CSS。jQuery hasClass vs hide

.hide { display: none; } 

現在,在jQuery下面哪兩個例子會更快?

if ($('#a').is(':hidden')) { 
    $('#a').show(); 
} else { 
    $('#a').hide(); 
} 

if ($('#a').hasClass('hide')) { 
    $('#a').removeClass('hide'); 
} else { 
    $('#a').addClass('hide'); 
} 
+1

你爲什麼不在jsperf.com上進行基準測試?我也建議你嘗試'.toggle()'和'.toggleClass()',它們可能比其中任何一個都快。 – Barmar

+0

從用戶的角度來看沒有什麼不同。但是,我會說第一個會更快,因爲一切都基於ID選擇器。而在第二種情況下,您正在使用ID和類選擇器。 ID比Classs快得多。 – Learner

回答

4

使用類的操作比調用顯示/隱藏功能要快。

這裏是jsperf:http://jsperf.com/hide-or-class

+0

太好了!我從來不知道jsperf。 – cnotethegr8

+1

+ 1,只是添加其他片段,以確保:http://jsperf.com/hide-or-class/2(似乎保持局部變量是一個好主意)。 – acdcjunior

0

我想你可以試試這個代碼:

$('a').toggleClass('hide') 

它使你的代碼,但它是較小的同樣的事情。你可以看看documentation of the toggleClass

0

什麼盧卡斯·威廉姆斯說是正確的。使用toggleClass()函數來減少你的代碼,它會比使用hide()和show()方法快得多