4

次のコードがあると仮定します。

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)ます。

HTMLオブジェクトを取得するようなことができることは知っていますが、私の質問は、またはname.call($(this).parent()[0]);のようなことをするとどうなるかということです。その結果は何であり、最も無力なことに、そのような構造を使用することに害はありますか?$($(this))$($('selector'))

4

1 に答える 1

6

$(this)when thisis already a jQuery object は、jQuery オブジェクトのコピーを作成します。

jQueryドキュメントから:

jQuery オブジェクトの複製

jQuery オブジェクトが関数に渡されると$()、オブジェクトのクローンが作成されます。この新しい jQuery オブジェクトは、最初のものと同じ DOM 要素を参照します。

于 2012-08-28T12:49:06.563 に答える