2011-08-31 45 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