2013-05-06 21 views
1

如何檢測上面未知級別的父級?jQuery檢測上面的未知級別的父母?

例如:

<div id="parent-a"> 
    <....> 
     <....> 
      <div class="the-child" /> <!-- Comment 1 --> 
     </....> 
    </....> 
</div> 
<div id="parent-b"> 
    <....> 
     <div class="the-child" /> <!-- Comment 2 --> 
    </....> 
</div> 

<....> DOMS可以是任何未知的元素(在任何多數字)之間。

然後,如果我從the-child上看Comment 1,我怎麼知道它的父母是div#parent-a

同樣的事情,如果我從the-childComment 2向上看,我怎麼知道它的父母是div#parent-b

+1

'.parents(「#dnowhereyougoing」)' – 2013-05-06 10:28:33

回答

0

使用jQuery parentshttp://api.jquery.com/parents/

if($('.the-child').parents('#parent-b').length>0){} 
+0

是不是'if'? – 2013-05-06 10:29:33

+0

更新我的代碼! – 2013-05-06 10:32:31

1

嘗試

if($('.the-child:first').closest('#parent-a').length){ 
    //success 
} 

但是你可能不得不選擇$('.the-child')限制就像一個被點擊的孩子或一個特定的孩子,因爲$('.the-child')將選擇的所有元素類the-child

2

你可以使用jQuery的parents()這樣的任務。 但是你必須有你想要指定的父元素至少一些標識符,因此,例如,這會工作:

// for version one 
var parent = $('.the_child').parents('#parent-a'); 

// for version two 
var parent = $('.the_child').parents('#parent-b'); 

在這兩種情況下的第一要素,這是the_child元素和比賽的祖先給定的選擇器被返回(如果存在)。