2011-05-19 94 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

相关问题