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元素。