1

を使用してこの要素を識別できる場合、これを達成する方法を知っていますselector

$("selector.class")

しかし、セレクターがキーワードの場合はどうなるthisでしょうか? を使用して要素の HTML を抽出する必要があるため、使用したく$(this".class")ありませんが、選択した要素にはこのクラスの要素が 1 つしかないことがわかっています (I' m HTML を書く)、JQuery はそうではなく、クラスで使用されたときにいくつかの要素を返すと想定しています (少なくとも、それが機能していると思います。なぜなら、$(this).children(".class").html()children()

$(this).children(".class").html()

を返しますundefined)。

これを行うことができる他の方法はありますか?

お気軽に説明を求めてください。これがはっきりしない人もいるかもしれません。

EDIT : 説明を求める方もいましたので、ここに記載します。質問を言い換えてみましょう: 通常、JQuery にいくつかの要素を取得するように依頼し、クラスをセレクターとして指定すると、複数の要素が返されると想定され、$(".selector").html()機能しません。いくつかの要素の HTML (少なくともそれが私の理論です)。代わりに、この場合は 1 つの要素しか返されないことを認識してもらいたいので、扱いはそのようにします。私の制限は、セレクターの一部がthis. それが役に立ったことを願っています!

4

3 に答える 3

5

あなたがどのような質問をしているのか完全に明確ではないので、ここにいくつかの異なるオプションがあります:

this目的のセレクターに一致する下位タグを (DOM ツリー内でルートとして)検索するには、次のようにします。

$(this).find(".myClass");

または、要素に特定のクラス名があるかどうかを確認しようとしているだけの場合はthis、次を使用できます。

if ($(this).hasClass("myClass")) {
    // this element has the desired class
}

または、セレクターが単なるクラスよりも複雑な場合は、次の.is()ように使用できます。

if ($(this).is("selector")) {
    // this element matches desired selector
}
于 2013-01-27T01:02:37.683 に答える
3

本当にthisセレクターではありませんが、できると思います:

$(".class", this)

これは( ) 関数contextに引数を与える例ですjQuery$

例 (ここでは jsfiddle )、HTML:

<div id="dis">hello
    <div class="cls">
        hi</div></div>
<div class="cls">
    goodbye</div>

jQuery:

$(function () {
    $('#dis').click(function () {
        alert(
            $('.cls', this).html());
    });
});

「dis」divがクリックされると「こんにちは」と警告します。

于 2013-01-27T01:06:41.900 に答える
1

Jquery は、JavaScript の上にある単なるレイヤーです。

探しているものを取得するには、生の JavaScript を使用するだけです。

var childOfThis = this.querySelector('.myClass');
于 2013-01-27T01:11:01.890 に答える