这个或那个:jQuery Targeting

时间:2014-08-07 23:30:14

标签: jquery

var $that=$('#id');

哪个更快?

$that.on('click',function(){alert($(this).length)})

或者

$that.on('click',function(){alert($that.length)})

在前者中,您定位的是目前已定位的元素。 在后者中,您的目标是已存储的一个。

4 个答案:

答案 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树。