2

このサンプルhtmlを検討してください

<div class="A">
    <div class="B">
        <span class="C">Sample text</span>
        <div class="D">
            <div class="E">Clickable Text</div>
        </div>
    </div>
</div>

そしていくつかのjQuery

$(".E").click(function(){
    //body
});

$(this)セレクターに一致する親を取得する最も簡単な方法は何ですか?たとえば、例でdivを取得する必要があるとしますclass="A"。現時点では、HTMLの構造を知っているので、できること

$(this).parent().parent();

しかし、私は構造に関係なく機能する方法を探しています。の線に沿った何か

$(this).findFirstParent(".A");

理解できたと思います。

4

5 に答える 5

4
$(".E").click(function(){
    console.log($(this).closest('.A'));
    /* console.log($(this).parents('.A')); works fine too */
});


http://api.jquery.com/closest/http://api.jquery.com/parents/を参照して
ください

parent()これは方法とは異なることに注意してくださいparents()(最初の方法では1つの祖先のみを検索します)

于 2012-05-03T11:59:55.340 に答える
3

最初の解決策:

$(this).closest('.A')

ソース:http : //api.jquery.com/closest/これは、トラバース時にセレクターに一致する最初の親を返します。

2番目の解決策:

$(this).parents('.A:first')

ソース:http ://api.jquery.com/parents/ これにより、セレクターに一致するすべての親が返されます

于 2012-05-03T12:00:21.753 に答える
2

どうですか

$(this).closest(".A");
于 2012-05-03T12:00:26.777 に答える
1

これは私がそれをする方法です

$(this).parents("div.A")
于 2012-05-03T12:13:08.373 に答える
0

jQueryの親セレクターが役立つかもしれません。あなたが探しているクラスとそれを組み合わせることができます。ドキュメント@http://api.jquery.com/parent-selector/を参照して ください

于 2012-05-03T12:03:54.267 に答える