1

いくつかのHTMLブロックは次のようになります

<li id="item261">
    <div class="itemdesc">
      <a class="icon-hide">Hide</a>
    </div>
</li>

そして私は次のようなjqueryを持っています

$(document).ready(function()
{
$('.icon-hide').click(function(){
          var elemId = $(this).parent().attr("id");         
    });
});

「.icon-hide」をクリックすると「li」タグのIDが必要になります。どうすればこれを達成できますか?どんな助けでも..

4

2 に答える 2

7

私は提案します:

$('.icon-hide').click(function(){
    var elemId = $(this).closest('li').attr('id');
});

これはparent()、メソッドの名前に示されているように、セレクターによって返された要素のdivを参照するためです(親は)です。一方closest()、メソッドに渡された最初のセレクターと一致するように祖先ツリーを上に移動します。

代わりに、を使用することもできますが、とparents()の重要な違いは、 0または1つの一致を返すことです。一方、ルート要素まで継続し、見つかったすべての一致を返すため、0、1、または多数の一致を返すことができます。closest()parents()closest()parents()

もう1つの違いはparents()、現在の要素の親から検索を開始するのに対し、現在の要素自体から検索を開始するため、メソッドを使用してcurrent/要素自体を返すことはclosest()非常に簡単です。closest()$(this)

参照:

于 2012-10-08T11:08:28.640 に答える
0
$(this).closest('li[id]').attr('id')
于 2012-10-08T11:09:04.287 に答える