2012-05-03 130 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")