我需要在页面上的大约10-20个元素中添加一个onClick事件。
引用这些元素的最快方法是什么?
是否会使用:1)类引用2)ID引用
或者更详尽的参考文献:p - > div - >李?
我意识到我们可能正在谈论一个非常小的性能提升,但我认为无论哪种方式都很有用。
答案 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标签进行选择的故事相同。
你必须根据元素“分析”的输出做出决定。