2011-05-19 84 views
2

jQuery中哪個更快?

$(element).data("dataAtribute"); 

$(element).hasClass("className"); 
+0

好的。採取的點。我問的原因是因爲我想根據HTML元素是否具有特定屬性來做「某事」。我只是想知道(和懶惰)是否通過類名或數據屬性添加此檢查會有所作爲。 – Sniffer 2011-05-19 09:58:19

回答

2

我的第一個猜測是.hasClass,因爲它不必使用自定義屬性,但會檢查本機.className屬性。按照this test我是對的。但是,沒想到它會有這麼多(〜90%)的差別。

在源代碼中檢查這些方法(請參閱src/data.jssrc/attributes.js)使其非常清楚。

+2

哇 - 這是一個驚喜!非常感謝抽出時間來進行測試 - 在早些時候@Dunhamzzz的回答之後,我完全有意做一些事情,但是你把我打敗了 - 而且我的演示比我想象的要好得多。希望你已經證明,這並不是一個愚蠢的問題。再次感謝! – Sniffer 2011-05-19 10:52:01

+0

@Sniffer不客氣!沒有愚蠢的問題,只有愚蠢的人:) – mekwall 2011-05-20 06:19:47

0

試試看 - 尤其是因爲這是如此簡單。請回報您的調查結果。

我猜想data()更快,因爲它直接檢查屬性,而不必搜索類屬性的值。

+1

再次點,採取。我只是想知道是否有人已經進行了測試,以節省我的時間。我沒有意識到這個問題會導致這樣的歡樂! – Sniffer 2011-05-19 09:59:50

相關問題