2016-08-01 67 views
2

當我點擊a元素時,我需要獲得第一個最接近的(最近的)li父元素的idjQuery:按類型獲取第一個最接近的「父」?

<ul> 
    <li id="wrong1"> 
     <ul> 
      <li id="p1"> 
      <a href="" class='btn'></a> 
      </li> 
      <li id="p2"> 
      <a href="" class='btn'>Click here!</a> 
      </li> 
      <li id="p3"> 
      <a href="" class='btn'></a> 
      </li> 
     </ul> 
    </li> 
    <li id="wrong2"></li> 
</ul> 

當我點擊Click here!,我應該得到li#p2元素。

我用:

$('a.btn').click(function(e) { 
    var GotIt = $(this).parents().find('li').attr('id'); 
}); 

但顯然沒有奏效。我也試過closest(),結果也一樣。

如何正確獲取元素?

+1

你試過'最近的(「li」)嗎? –

+0

[jQuery parent(),parents()和closest()函數之間的差異可能重複](http://stackoverflow.com/questions/9193212/difference-between-jquery-parent-parents-and-closest-functions) –

回答

3

你應該寫你的腳本

$('a.btn').click(function(e) { 
    var GotIt = $(this).closest('li').attr('id'); 
}); 

,因爲「李」是你的「a」元素的直接父,你還是你還可以用像

$('a.btn').click(function(e) { 
    var GotIt = $(this).parent().attr('id'); 
}); 
2

您可以使用closest(type),即:

$('a.btn').click(function(e) { 
    var li = $(this).closest("li"); 
    alert(li.attr("id")) 
}); 

小提琴:https://jsfiddle.net/f14vjLmc/