jQuery双对象构造函数 – 例如$($(this))

假设您有以下代码:

function name() { $(this).css('background', 'red'); } $('selector1').click(name); $('selector2').click(function () { name.call($(this).parent()); }); 

现在,当通过单击’selector1’调用该函数时, this是一个HTML对象和$(this)一个jQuery对象,但是如果通过单击’selector2’来调用该函数,那么this已经是一个jQuery对象了,所以$(this)

我知道我可以做一些像name.call($(this).parent()[0]); 得到一个HTML对象,但我的问题是当你做$($(this))$($('selector'))这样的事情时会发生什么? 结果是什么,最显着的是,使用这种结构有什么危害?

$(this)this已经是一个jQuery对象时,它就是同一个jQuery对象。

来自jQuery文档 :

克隆jQuery对象

当jQuery对象传递给$()函数时,会创建该对象的克隆。 这个新的jQuery对象引用与初始DOM元素相同的DOM元素。