1

次の HTML があるとします。

<div class="SomeParent" id="BlueParent">
  <div>
     <div class="Test">test</div>
  <div>
</div>

class の divは、実際にはコンテナーTest内で深くネストされています。Test が子孫であるクラスのID を取得する最速SomeParentの方法は何ですか。それを行うための最良の方法はありますか?SomeParent.parent()

ご提案いただきありがとうございます。

4

4 に答える 4

6

多分

$('.Test').closest('.SomeParent').attr('id');

http://api.jquery.com/closest/

ただし、コードパラドックスのソリューションよりも速いか遅いかはわかりません。

于 2012-08-09T17:04:38.577 に答える
2

あなたが試すことができます:

$('div.SomeParent').has('div.Test').attr('id');

デモ

親の代わりに使用できます.has()

別の選択肢はclosest()次のとおりです。

$('.Test').closest('.SomeParent').attr('id')

デモ

于 2012-08-09T17:01:23.497 に答える
2

<div.Test>を jQuery オブジェクトとして既に持っている場合は、 を使用するの.closest()ではなく、 を使用できます.parents().closest()指定したセレクターの最初の出現に到達すると停止します。.parents()一方、dom のルートまでトラバースし、見つかったすべてを返します。

于 2012-08-09T17:05:29.697 に答える
1

親のDOMツリー内で検索している親要素のクラスを指定するには、parent()ではなくparent()を使用できます。

$(".Test").parents(".SomeParent").attr("id")
于 2012-08-09T17:29:48.223 に答える