获取最接近的前一个div的内容

时间:2015-07-01 10:27:00

标签: javascript jquery html css

我目前正致力于在某种文章中回复某人的帖子。

基本上,我想要实现的是当您点击“回复帖子”时。 (.comment-reply class)在帖子下面 - 你从.comment-username div中获取它的作者名称,然后把它放到textarea。问题是以这个div为目标并获取我想要放入变量的内容,然后将其放入textarea。无法想象这个目标和抓取。进入的基本结构是这样的:

<div class="comment-block comment-child">
    <div class="comment-info title-small text-bold">
        <div class="push-left">
            <span class="comment-username sm-fc">AUTHOR NAME is here</span>
            <span class="comment-time">some date</span>
        </div>
        <div class="push-right">
            <span class="comment-rating">some int value</span>
        </div>
        <div class="clear"></div>

    </div>
    <div class="comment-text">
        Sample text => Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    </div>
    <div class="comment-functions">
        <span class="comment-reply title-small text-bold">reply to post</span>
        <span class="comment-rate comment-plus"> + </span>
        <span class="comment-rate comment-minus"> - </span>
    </div>  
</div>

此外,在同一页面上会显示很多帖子,所以我不想为每一个帖子使用ID,而不是我使用的类在这种情况下我更清楚。

我一直在尝试$.prev()$.closest(),但没有结果。

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

您可以使用closest()来获取公共.comment-block容器,然后find() .comment-username并检索text()。试试这个:

$('.comment-reply').click(function() {
    var username = $(this).closest('.comment-block').find('.comment-username').text();
    // do something with the username here...
});

Example fiddle

答案 1 :(得分:1)

有了父母(选择人),你可以:

 var name = $(this).parents('.comment-username').text();

祝你好运。