0

この構造のページにこれらのhtmlブロックがいくつかあります

<div class="listing">
<h4><a href="#">Some test Entry here</a></h4>
<div class="entry clearfix">
    <a href="#" class="btn">
        Text Here                    
    </a>
</div>
</div>

「.entry .btn」にクリック イベントがあり、正常に起動しています。しかし、クリックしたボタンと同じリスティング ブロック内の「H4 a」の内部テキストを取得したいと考えています。以下を試しましたが、H4 テキストを取得できないようです。

var getTitle = $(this).parents("h4").first();
alert(getTitle.html());

私も試してみclosest()ましたが、まだ H4 を取得できませんか? 何か案は?

4

3 に答える 3

3

closest&parents先祖を探します。しかし、h4親の別の子にあり.listingます。

試す:

var getTitle = $(this).closest('.listing').find("h4").first();
于 2013-07-02T10:38:40.450 に答える
2

.parent()まず、または.parents()関数を使用してターゲット要素を識別するために、DOM 構造を上方向にトラバースする必要があります。

あなたの要件では、直接の親.parent()は必要ないため、代わりに使用.parents()してDOM内のすべての祖先を取得し、クラスセレクターを使用して参照し、.listing最終的に内側にトラバースしてターゲット要素を見つける必要がありますh4

JS コード:

$('.btn').on('click',function(){
   alert($(this).parents('.listing').find('h4').html());
});

ライブデモ@JSFIDDLE

ハッピーコーディング:)

于 2013-07-02T10:50:18.100 に答える
1

jqueryでprev関数を使う

var getTitle = $(this).prev().find("h4").first();
alert(getTitle.html());
于 2013-07-02T10:40:33.317 に答える