3

このコードでは:

    $(function() {
        $("div").click(function() {
            $(this).before("<p>Hi</p>");

        });
    });

「これ」は実際には何を指していますか?div のリスト全体を参照していますか、それともクリックされた特定の div のみを参照していますか? そして、どうすれば知ることができますか?

thisまた、 jQuery記号なしで書いても問題になりますか、それとも同じですか?

4

8 に答える 8

5

クリック ハンドラー内でthisは、イベントを発生させた単一の DOM 要素 (この場合は div 要素) への参照です。それをラップすることで、$()その div 要素への jQuery 参照を作成します (その単一の要素を含む jQuery オブジェクトで、jQuery メソッドを呼び出すことができます。

$(function() {
    $("div").click(function() {
        $(this).before("<p>Hi</p>"); // 'this' is an HTMLDivElement

    });
});
于 2013-04-24T11:16:14.877 に答える
3

this は DOM オブジェクトですが、$(this) は同じものの jQuery ラッパーです。

これを使用すると、DOM メソッドを呼び出すことができますが、jQuery メソッドを呼び出すことはできません。$(this) を使用すると、jQuery メソッドを呼び出すことができますが、DOM メソッドを呼び出すことはできません。

于 2013-04-24T11:16:54.077 に答える
2

thisは単なる参考です。言語は、現在最もアクティブな要素を取り込むものとして読み取ります。

コード全体で使用して、現在のセッションに依存するさまざまな変数を多くのタスクで使用できるようにすることができます。

多くのオブジェクト指向プログラミング言語では、this (または self) は、現在実行中のメソッドが呼び出されたオブジェクトを参照するためにインスタンス メソッドで使用できるキーワードです。

これを見てください。

于 2013-04-24T11:16:22.680 に答える
2

thisは常に対話している特定の DOM ノードです$(this)が、 は同じ DOM ノードですが、jQuery オブジェクトにラップされています。

違いは、thisプレーンな JavaScript/DOM API で使用できる (そして$(this)使用できない) ことですが、jQuery メソッド ( hide()show()など) を使用する必要がある場合は、 (では$(this)なくthis) を使用する必要があります。

于 2013-04-24T11:16:18.447 に答える
1

$(this)イベントハンドラーもアタッチしたセレクターから作成されたjQueryオブジェクトを参照します。divイベントが実行されるすべての要素はthis、追加されたプロパティと、jQuery オブジェクトから作成されたメソッドになります。

于 2013-04-24T11:16:49.603 に答える
0

この状況でthisは、クリックした特定の HTML 要素を指します。

いいえ、「$」記号を の前に置く必要はありません。(this)そうしないと、JavaScript エラーが発生します。

于 2013-04-24T11:14:51.090 に答える