2013-05-13 99 views
0

所以在某些情況下,爲了更好的代碼可讀性,我使用了像div#parent div.someclass a,但也可以像div.someclass a一樣。那麼哪個版本更好更快?選擇器的長度是否會影響速度?

+1

id選擇器比類選擇器快得多。如果使用'div#parent div.someclass a',它只會在#parent元素中查找'.someclass a'。如果你只是使用'div.someclass a',它會搜索所有的DOM樹,這會讓它變慢。 – Catalin 2013-05-13 06:05:05

+0

他們不這樣做。即使只有具有'someclass'類的元素在'#parent'內部,速度也沒有實際差異。 – JJJ 2013-05-13 06:05:06

+0

爲了更好的代碼可讀性,不要在#之前放置標記名。也就是說,使用「#parent」而不是「div#parent」。如果您選擇的是ID,則不需要標記名,所以當您將_do_包含進來時,會讓所有人都讀取您的代碼,並懷疑您是否實際上_intended_「僅在ID爲'parent'的元素中僅當它是div時才選擇。 – nnnnnn 2013-05-13 06:11:49

回答

1

使用JQuery考慮在一天結束時必須將選擇器轉換爲本機瀏覽器功能非常重要。這意味着您應儘可能使用基於ID或標記的選擇器。 我建議使用$("div#parent").find("div.someclass a")獲得更好的性能

這提供了更好的性能,因爲它會使用優化標籤/ id選擇獲取父,和較慢的基於類的選擇適用於更有限的集合,因爲只應用於它到指定父母的後代。

相關問題