標記名稱是否受傷或幫助?哪個jQuery選擇器更有效率.find()
1)$content.find('[name=foo]')
或
2)$content.find('input[name=foo]')
標記名稱是否受傷或幫助?哪個jQuery選擇器更有效率.find()
1)$content.find('[name=foo]')
或
2)$content.find('input[name=foo]')
I wrote a quick JSPerf test複雜的,它實際上幾乎是相同的。
兩者都很慢(反正jQuery的速度很慢)。
I tested the $.find() method two weeks ago。這是一個很好的習慣,它非常高效。
如果你可以讓html更復雜一些,看看差異是否更高,這將會很有趣 – 2014-09-10 17:37:37
是的,好點。它仍然非常簡單。無論如何,差異是以%計算的。 – Cohars 2014-09-10 17:47:36
是正確的,但我想象一個複雜的DOM應該影響結果,使差異更加明顯。在你的例子中,基本上所有元素都與「輸入」選擇符匹配,你應該添加不同的標籤。 – 2014-09-10 18:07:22
在測試之前,我想說的第二個應該有更好的表現,因爲它可以利用DOM方法getElementsByTagName
的優勢。這是一個一級過濾器,應該可以提高性能。
大概也不會是noticiable除非頁就夠
這就是我最初的想法。如果標籤傳遞給.find(),jQuery是否使用該DOM方法? – 2014-09-10 17:43:22
如果您查看jQuery代碼,只要瀏覽器中提供方法,jquery就會使用getElementsByTagName方法來解析標籤選擇器。 – 2014-09-10 18:06:36
試試看:http://www.jsperf.com – 2014-09-10 17:28:11