创建一个空的jQuery对象:$({})或$()

时间:2012-10-31 01:19:18

标签: javascript jquery

我已经看到以下两个变量初始化来创建一个空的jQuery对象。使用一个比另一个有重大区别或优势吗?

var a = $({});
var b = $();

2 个答案:

答案 0 :(得分:27)

如果您的意思是$([]),那就是过去调用$()实际上等同于$(document)(这是一个未记录的功能)的东西。所以要获得一个空集,你必须调用$([])。这是changed in jQuery 1.4; $()的文档功能现在返回一个空集。

对象传递给jQuery构造函数是一个完全不同的野兽。 $({})不会创建空的jQuery对象。它创建一个长度为1的jQuery对象;所选项目是对象本身。

将JS对象传递给jQuery构造函数可以让您利用jQuery的更深奥的功能:在(非DOM)对象上绑定和触发事件。

例如:

var obj = { some: 'stuff' };

$(obj).on('someevent', function() { ... });

$(obj).trigger('someevent');

无论哪种方式,如果您的目标是实例化一个新的空jQuery对象,请使用$()

答案 1 :(得分:3)

我认为你的意思是:

var a = $([]); //<- array not object
var b = $();

我所知道的没有优势,第一个是旧版本,因为1.4你可以使用后者。

相关问题