2012-05-03 81 views
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"); 

我希望我能理解。

+0

的可能重複[如何選擇一祖先相匹配的選擇?(http://stackoverflow.com/questions/ 2867022 /如何對選擇先祖先即百搭一個選擇器)。 –

+0

@FelixKling,我正準備+1你的答案,但不是我所需要的,我看不出-1的原因。 –

+0

我想是因爲'.closest'真的是這裏最好的方法......但是我錯過了你的問題中的部分'.A'實際上是固定的,所以nvm;) –

回答

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

謝謝。我嘗試使用Google搜索,但不知道要搜索的詞組。 +1 –

2

什麼

$(this).closest(".A"); 
1

這是正路我會做

$(this).parents("div.A")