2016-08-01 2 views
2

a要素をクリックすると、最も近い(最も近い)li親要素のidを取得する必要があります。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

'closest(" li ")'を試しましたか? –

+0

[jQuery parent()、parents()およびclosest()関数の相違点の可能性のある複製](http://stackoverflow.com/questions/9193212/difference-between-jquery-parent-parents-and-closest-functions) –

答えて

3

「LI」は、あなたの「」要素の直接の親であるので、あなたは、そうuはまた、あなたがclosest(type)を使用することができます

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

のように使用することができ、

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

ようにスクリプトを記述する必要がありますすなわち:

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

フィドル:https://jsfiddle.net/f14vjLmc/

関連する問題