用jquery选择父块

时间:2012-03-13 15:41:32

标签: jquery dom jquery-selectors

我有以下标记:

<tr>
<td class="message">
    <p>This is a test post</p>
</td>
<td class="metadata">
    <div class="top">
        <a href="">#1</a><br/>
        <span>12.03.2012</span><br/>
    </div>
    <div class="bottom">
         <a href="" class="light-button quote">Quote</a>
    </div>
</td>
</tr>

我在网页上有多个帖子,我想实现引用js的帖子。当用户点击引号按钮时,它应该采用段落文本 到目前为止我尝试了什么:

$('a.quote').on('click', function(e){
    e.preventDefault();

    $(this).closest('.message > p').text();      
});`

但这不起作用。它返回一个空字符串。

编辑:我做到了 $(this).closest('td').prev().children('p.thread-message').html();

4 个答案:

答案 0 :(得分:0)

这适合我。

$('a.quote').on('click', function(e){
    e.preventDefault();
     alert($(this).closest('td').prev('td').find('p').html());      
});

以下是jsfiddle示例:http://jsfiddle.net/7tfMK/9/

答案 1 :(得分:0)

$(this).parents('td').siblings('.message').children('p').text()

你需要像@ Shyju的帖子一样一直到父TR,或者去父母TD并抓住它的兄弟。

答案 2 :(得分:0)

这将有效;

var quote = $(this).parents('tr').first().find('.message p').text();

请参阅demo

答案 3 :(得分:-1)

我会这样做

$('.message > p', $(this)).text();      

这是未经测试的,可能没有必要将this包装到jQuery对象中。

相关问题