2016-08-01 7 views
2

Мне нужно получить id первого ближайшего (ближайшего) li родительского элемента, когда я нажимаю на элемент a.jQuery: Получить первый ближайший «родительский» по типу?

<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(), parent() и closeest()] (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.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")) 
}); 

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

 Смежные вопросы

  • Нет связанных вопросов^_^