2016-08-01 31 views
2

Ich brauche die id des nächsten nächsten (nächstgelegenen) li Elternelements, wenn ich auf a Element klicke.jQuery: Holen Sie sich das nächstliegende "Elternteil" nach Typ?

<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> 

Wenn ich klickte auf Click here!, ich bin li#p2 Element erhalten soll.

I verwendet:

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

Aber anscheinend hat es nicht funktioniert. Ich habe auch versucht closest() und auch das gleiche Ergebnis.

Wie bekomme ich das Element richtig?

+1

Haben Sie versucht 'am nächsten (" li ")'? –

+0

Mögliches Duplikat von [Unterschied zwischen jQuery parent(), eltern() und engsten() Funktionen] (http://stackoverflow.com/questions/9193212/difference-between-jquery-parent-parents-and-closest-functions) –

Antwort

3

Sie sollten Ihr Skript als

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

schreiben, weil "li" ist die direkte Mutter Ihres "ein" Element, so kann u sehen auch verwenden

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

Sie closest(type) verwenden können, dh:

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

Fiddle: https://jsfiddle.net/f14vjLmc/