2013-03-04 36 views
4

我需要得到具有position:relative的第一個父項。就像下面的例子,但我的真實內容將被動態生成。如何使用jQuery獲取具有某個CSS屬性的第一個父項?

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

你知道一個簡單的方法來做到這一點使用jQuery?

+0

的[jQuery的API(http://api.jquery.com/)是一個偉大的地方,以獲得您所需要所有信息。 – yckart 2013-03-04 13:25:08

+0

@ Doorknob - 我已經搜索過類似的答案,但找不到它。 – Victor 2013-03-04 13:30:59

+0

@yckart - 我相信建議閱讀文檔不是這個網站的目的... – Victor 2013-03-04 13:31:42

回答

11

可以filterparents(),並抓住第一個元素匹配過濾:

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

DemoWorks with classes, too

+0

謝謝大衛,很快回答!它也是與班級一起工作真是太好了。 – Victor 2013-03-04 13:42:58

-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') 
+2

這可能是一個很好的方法,但我想可以把「第一父母」理解爲最親近的父母。無論它是否是父項,您只是獲取第一個元素。你可能會考慮類似'$('#my-element')。closest('.active')' – 2013-03-04 13:30:41

+0

沒錯。我沒有明白:)我要更新它。 – Alvaro 2013-03-04 13:35:38

相關問題