在jQuery中,选择一组元素的最快方法是什么?

时间:2009-02-10 12:40:14

标签: jquery performance

我需要在页面上的大约10-20个元素中添加一个onClick事件。

引用这些元素的最快方法是什么?

是否会使用:1)类引用2)ID引用

或者更详尽的参考文献:p - > div - >李?

我意识到我们可能正在谈论一个非常小的性能提升,但我认为无论哪种方式都很有用。

6 个答案:

答案 0 :(得分:4)

这真的不足以担心。除非你的页面中有很多东西,否则我会说使用jQuery和类选择器来实现可维护性和可重复性,然后转向更强硬的代码。 :)

如果您担心,请通过在脚本中松散地进行测试来自行测试。

已添加:directly answer您的选择器速度问题:#id>> tag.class> 。类。请注意,超过20000个元素,基于id的搜索和基于类的纯搜索之间的平均时间最多相差约700毫秒。这就是为什么我建议你不要太担心...... :)

答案 1 :(得分:1)

由于添加onClick事件,请查看事件委派。它改变了我的生活。 : - )

基本上,您会将侦听器分配给容器,并捕获这20个项目上的单击事件。不确定它与你想做什么有关,但我认为每个人都很了解它。

答案 2 :(得分:0)

您打算如何使用ID选择10-20个不同的元素?

课程参考将是我要说的方式。

答案 3 :(得分:0)

如果用div包围内容并执行(div - > li)。 那么你就不必在每个元素上写很多标签,但绝对是在id

上的类

答案 4 :(得分:0)

取决于具体情况。 10-20个元素,按类型或层次结构很好地隔离,因此您可以仅引用这些元素而不是任何其他元素。我会使用分层或基于属性的选择器。 10-20个元素散布着选择器不应用的相同类型的其他元素,然后我分配并使用一个类。如果您认为布局可能会改变并打破其他选择器,后者可能是最灵活的。

$('div#interface > a').click( ... )

$('input[type=button]').click( ... )

$('span.clickable').click( ... )

答案 5 :(得分:0)

您必须在元素中找到一个模式,并在页面上找到其他元素。

他们有同一个班级吗?您不想选择页面上是否有其他元素,但是具有相同的类? 基于html标签进行选择的故事相同。

你必须根据元素“分析”的输出做出决定。