2012-06-30 95 views
0

我正在使用jQuery,我需要使用最接近的來獲取想要的元素的.text()。jquery - 使用.closest()

下面是HTML:

<div class="endorse-set"> 
<div class="endorse"> 
<span class="keyword" id="keyword-1">web developer</span> 
<textarea class="comment" id="comment-1"></textarea> 
<input type="button" class="endorse-button" id="endorse-button-1" value="Endorse"> 
</div>​​​​​​​​​​​​​​​​​​​​​​ 
<div class="endorse"> 
<span class="keyword" id="keyword-2">web designer</span> 
<textarea class="comment" id="comment-2"></textarea> 
<input type="button" class="endorse-button" id="endorse-button-2" value="Endorse"> 
</div>​​​​​​​​​​​​​​​​​​​​​​ 
<div class="endorse"> 
<span class="keyword" id="keyword-3">Entrepreneur</span> 
<textarea class="comment" id="comment-3"></textarea> 
<input type="button" class="endorse-button" id="endorse-button-3" value="Endorse"> 
</div>​​​​​​​​​​​​​​​​​​​​​​ 
</div> 

我需要得到.text()網頁設計師或Web開發人員或企業家.comment值,當用戶點擊.endorse-button

我想這樣的並失敗:

$(".endorse-button").click(function(){   
     var keyword = $(this).closest('span.keyword').text(); 
     var comment = $(this).closest('textarea.comment').val(); 
     alert(keyword); 
     alert(comment); 
}); 

我什麼都沒有。你可以幫幫我嗎?

P.S.我是jQuery新手!

謝謝!

回答

3

closest方法查看祖先元素(例如父母div.endorse,以及該父母等)。有問題的元素是兄弟,這樣你就可以使用siblings方法:

$(".endorse-button").click(function(){   
    var keyword = $(this).siblings('span.keyword').text(); 
    var comment = $(this).siblings('textarea.comment').val(); 
    alert(keyword); 
    alert(comment); 
}); 
1

這是我怎麼會在這種情況下使用.closest()

$('.endorse-button').click(function(){ 
    var endorse = $(this).closest('.endorse'), 
     keyword = endorse.find('span.keyword').text(), 
     comment = endorse.find('textarea.comment').val(); 
    alert(keyword); 
    alert(comment); 
});