var $this = $(this);
鉴于上述情况,速度更快:$(".elt", $this)
或$this.find(".elt")
?
我问,因为第一个似乎更简洁,但如果它转换为$($this).find(".elt")
[sic],它似乎实际上可能更慢。
答案 0 :(得分:5)
使用$("#elt")
要快得多,因为只有一个id="elt"
元素是有效元素。 (ID必须是独一无二的)
编辑:如果你只是用它作为例子,并且同样的问题适用于使用类而不是ID,由于jquery在内部的工作方式,两种方式应该相对相同。
$(".elt", $this)
转换为与$this.find(".elt")
相同的$this.find(".elt")
。
在一次运行数千次迭代后,您可能会发现两者之间的差异,但在正常情况下,最好使用更容易阅读的那种。
答案 1 :(得分:3)
这两者之间的性能差异可以忽略不计。
$( 'selector', context )
在jQuery $( context ).find( 'selector' )
函数的最开头转换为$()
。我们在这里谈论微秒(如果不是纳秒)。
(我更喜欢较短的形式,因为它......嗯,更短。)