2013-07-02 55 views
0

我有幾個頁面上的這些HTML塊的這種結構獲取文本最近父H4使用jQuery

<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」這是射擊精click事件。但我希望在點擊的btn所在的同一個列表塊中獲得'H4 a'的內部文本。我嘗試了以下,但似乎無法獲得H4文本。

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

我也試過closest()但仍不能獲得H4?有任何想法嗎?

回答

2

closest & parents尋找祖先。但是,h4在父母.listing的另一個孩子中。

嘗試:在jquery的

var getTitle = $(this).prev().find("h4").first(); 
alert(getTitle.html()); 
+0

的偉大工程。謝謝我會在10分鐘內接受我的許可:/ – leen3o

+0

@ leen3o:welcome :-) – 2013-07-02 10:47:29

+0

@ leen3o發生了什麼事情「10分鐘內接受」? –

1

使用分組的功能。

您的需求,你不需要直接父因此.parent()是沒有用的,而不是你需要使用.parents()獲得DOM中的所有祖先,是指與類選擇了一個.listing &終於穿越內找到目標元素h4

JS代碼:

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

Live Demo @ JSFIDDLE

編碼快樂:)

1

首先你需要向上遍歷DOM結構以識別使用.parent().parents()功能目標元素

var getTitle = $(this).closest('.listing').find("h4").first();