jQuery双对象构造函数 - 例如$($(本))

时间:2012-08-28 12:47:55

标签: javascript jquery

假设您有以下代码:

function name() {
    $(this).css('background', 'red');
}

$('selector1').click(name);

$('selector2').click(function () {
    name.call($(this).parent());
});

现在,当通过单击'selector1'调用该函数时,this是一个HTML对象,$(this)是一个jQuery对象,但如果通过单击'selector2'调用该函数{{1已经是一个jQuery对象,那么什么是this

我知道我可以执行类似$(this)的操作来获取HTML对象,但我的问题是当您执行name.call($(this).parent()[0]);$($(this))之类的操作时会发生什么?结果是什么,最显着的是,使用这种结构有什么危害?

1 个答案:

答案 0 :(得分:5)

$(this)已经是jQuery对象时,

this就是同一个jQuery对象。

来自jQuery docs

  

克隆jQuery对象

     

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