jquery - 使用.closest()

时间:2012-06-30 18:36:06

标签: javascript jquery

我正在坚持使用jQuery,我需要使用最接近获取所需元素的.text()。

这是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()

时,我需要获得.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的新手!

谢谢!

2 个答案:

答案 0 :(得分: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 :(得分: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);
});