0

誰かがこれが機能する理由を説明できますか:

$(function(){
    $("ol li a").click(function(){
        $("ol li a").filter(":even").css("color", "orange");
    });
});

しかし、これはしません:

$(function(){
    $("ol li a").click(function(){
        $(this).filter(":even").css("color", "orange");
    });
});

このコンテキストで $(this) を使用すると、元のセレクターを持つ jquery オブジェクトが参照されると思いました。

4

3 に答える 3

5

$(this)は単一の要素 (イベントのターゲット) であり、$("ol li a")そのセクターに一致する 0 から N 個の要素が含まれているためです。

于 2013-10-25T12:24:01.787 に答える
3

this元のセレクターに対応する要素のコレクションではなく、イベントを受け取った特定の要素です。単一の要素を返すセレクターが$(this)あり$(selector)、交換可能ですが、あなたの場合はそうではありません。

于 2013-10-25T12:24:06.127 に答える
2

ボタンをクリックすると、イベントが発生し、$(this)作成され$(this)ますが、要素のセット全体ではなく、クリックされた要素のみが作成されます。したがって、要素は 1 つだけであるため、フィルター処理できません。

于 2013-10-25T12:24:57.463 に答える