2012-12-03 50 views
45
document.getElementById("elementId").style.display="none" 

用於JavaScript來隱藏元素。但在jQuery中,JavaScript style.display =「none」或jQuery .hide()更高效?

$("#elementId").hide(); 

用於相同的目的。哪種方式更有效率?我看到兩個jQuery函數.hide().css("display","none")here之間的比較。

但我的問題是純JavaScript是否比jQuery更有效?

+0

可能重複[.hide()或display:none? jQuery](http://stackoverflow.com/questions/4396983/hide-or-display-none-jquery) –

回答

82

談到效率:

document.getElementById('elemtId').style.display = 'none'; 

什麼jQuery不會與它.show().hide()方法是,它記住元素的最後狀態。這有時候會派上用場,但是因爲你問到效率這個問題並不重要。

+1

是的,這是更高效,但這是不安全的。在我的工作中,有一個巨大的Web應用程序,它幾乎完全可配置,因此根據上下文和配置,某些項目可能會或可能不在頁面中。 如果此元素不存在於頁面中,則會導致錯誤(在未定義的對象上使用.style)。 使用JQuery你不會有這個問題,或者如果沒有,你應該在做之前檢查if(document.getElementById('elemtId'))'。 – dominicbri7

+0

任何基準可能在這裏? :) – rogerdpack

25

在99.999999%的情況下,效率對於這樣的事情無關緊要。做任何更容易閱讀和維護的內容。

在我的應用程序中,我通常依靠類來提供隱藏和顯示,例如.addClass('isHidden')/.removeClass('isHidden'),如果我願意,它可以讓我用CSS3動畫。它提供更多的靈活性。

+2

我不會那麼說。根據調用的次數,這個*可以成爲一個因子*,因爲我們每次調用jQuery構造函數方法。 – jAndy

+1

如果你一秒鐘做這個> 10,000次,它可能會變得明顯。我可以證明它:) –

+6

http://jsperf.com/jquery-hide-vs-native33 - 請再來.. – jAndy

22
a = 2; 

VS

a(2); 
function a(nb) { 
    lot; 
    of = cross; 
    browser(); 
    return handling(nb); 
} 

的意見,你認爲什麼將是最快的?

+2

這個讓我發笑,而且是最好的答案,不錯。 –

+0

很酷的解釋。大聲笑 – bot

+0

不是最好的解釋,但'很多; of = cross;瀏覽器();處理...'''''''''''''''''''''''''''''''''''''''''我不會給你一個倒退:P –