var $that=$('#id');
哪个更快?
$that.on('click',function(){alert($(this).length)})
或者
$that.on('click',function(){alert($that.length)})
在前者中,您定位的是目前已定位的元素。 在后者中,您的目标是已存储的一个。
答案 0 :(得分:2)
后者更快,因为您直接访问对象的属性。在前者中,您需要经历另一个jQuery请求。
答案 1 :(得分:1)
$that
会更快。 $(this)
必须调用jQuery函数并创建一个包装DOM元素的新对象。 $that
只返回对已存在的对象的引用。
答案 2 :(得分:1)
使用$that
比$(this)
更快,因为后者将创建另一个jQuery对象,而不是使用已存在的jQuery对象。
然而,在大多数情况下,差异太小而无法产生实际差异。您不需要一直创建变量只是为了从代码中挤出最后一个性能。你没有使用jQuery来获得最快的代码。
此外,您应该考虑使用的差异。在事件处理程序中使用$(this)
将始终为您提供一个jQuery对象,其中包含捕获事件的单个元素,即使相同的事件处理程序绑定到多个元素。
答案 3 :(得分:0)
var $that=$('#id');
这更快,因为每次使用$(选择器)时,您都在搜索整个DOM树。因此,通过缓存Jquery对象,您可以避免重复搜索DOM树。