2011-08-31 112 views
1

我想知道的事情......性能jQuery中與選擇

如果我需要得到內容或追加的點擊功能的DIV,作爲選擇的結構是類似的東西:

$('body #content #sidebar .modalwindow #global-content') 

我想要#全局內容,選擇器的最終ID。 什麼更好? 只需將它定位爲$('#global-content')並按照我想要的或給它的所有路徑?

回答

1

如果你知道你的元素的id,如果你的ID是真的很獨特(它應該是)。直接撥打id >>$('#global-content')會更快。

因此,它被jquery解釋爲最快的選擇器getElementById()之一,而不是過濾DOM。

注:我知道的jQuery 1.5及更高版本(甚至自1.4)進行了優化,通過id即使jQuery代碼被添加了太多的信息來選擇,但是這不是依靠框架來糾正的最佳方式不好的代碼

2

$('#global-content')是最好用的選擇器,也許整個選擇器會以同樣的方式執行(如果jQuery從右到左開始,我不確定它)。 ID應該是唯一的,getElementById()是最快的本地瀏覽器方法,因此$('#global-content')是最快的選擇器。

請記住,當您在DOM樹中搜索正好低一級的東西時,您可以將>放在選擇器中。例如:

$('body .content')被equialent到$('body').find('.content')

$('body > .content')被equialent到$('body').children('.content')

第二個是更快。

+0

$('body .content')等於$('body')。find('。content') $('body> .content')等於$('body')。children('。內容') –

+0

真的感謝發佈它,我不知道它...... :) –

2

你可以嘗試和試用您的選擇器here