2015-06-21 84 views
0

我是否需要用大元素的id元素包装类元素?快速JQUERY SELECTOR点击

$('#id').find('.class').click 快于 $('.class').click

另外,我想知道。 是<a onclick="function()">link</a> 快于 selector id link with $(selector).click

+0

如果我的工作只是不同类的元素(按钮),我是否需要将它们包装或通过id元素进行分组以获得快速响应点击功能? – wglihk

回答

0

我真的不认为你需要关注简单地使用类选择器的性能。我想你所问的更大的问题是这两个选择器可能会选择不同的元素。

以下选择:

$('#id').find('.class') 

是要找到与类名ID为“ID”元素的“类”的所有子孙元素。

中的第二选择:

$('.class') 

是要找到与类名“类”的所有元素。

基本上,当他们选择不同的东西时,询问哪个更快,这很奇怪。第一个选择器可能是第二个元素的一个较小的子集(并且速度会更快,但可能不会让你的头发掉毛)。

对于问题的第二部分,它可能取决于你的意思是“更快”。如果您使用jQuery或JavaScript来绑定事件侦听器,则需要一些时间在DOM中查找元素。但是,您也有能够延迟附加这些监听器的优势,直到加载页面的重要部分之后。通过onclick属性附加一个事件监听器是非常合理的,但它确实取决于项目的大小和范围。在HTML文件中使用所有的事件监听器逻辑会变得非常笨拙。使用选择器可以让您更好地分离(除其他外)。我鼓励你做更多的研究,因为在线上有关于这个主题的大量讨论。