5

を持つ最初の親を取得する必要がありますposition:relative。以下の例のようなものですが、実際のコンテンツは動的に生成されます。

<div id="parent1" style="position:relative">
    <div id="parent2">
        <div id="my-element" style="position:absolute"></div>
    </div>
</div>

jQueryを使用してこれを行う簡単な方法を知っていますか?

4

2 に答える 2

12

filterのセットをparents()作成し、フィルターに一致する最初の要素を取得できます。

$('#my-element')
    .parents()
    .filter(function() { 
        return $(this).css('position') == 'relative'; 
    }).first();

デモクラスでも機能します

于 2013-03-04T13:24:46.157 に答える
-2

スタイルを直接変更してjQueryを使用してそのクラスを探すのではなく、クラスを追加することをお勧めします。はるかにシンプルで直感的です。

CSS:

.active{
    position:relative;
}

HTML:

<div id="parent1" class="active">
    <div id="parent2">
        <div id="my-element"></div>
    </div>
</div>

jQuery:

//getting the first element with .active class
$('#my-element').closest('.active')
于 2013-03-04T13:24:10.633 に答える