Jquery选择器,不要在p标签内包含锚点?

时间:2011-05-06 21:06:36

标签: javascript jquery jquery-selectors

我得到了其中一个:

$('a.retweet').click(function () {
    var retweetText = $(this).closest('.article-content').children('p').text();
}

有一堆这些:

<p><a href="">Name</a> stuff written here </p>

但我只想要p标记内的文字,而不是a href。那么我如何才能获得p标签中的文字?

6 个答案:

答案 0 :(得分:1)

如果文本始终是元素中的最后一个子项,请使用.lastChild.nodeValue

答案 1 :(得分:1)

如果您可以更改标记,那么您想要的文字位于<span>

<p><a href="">Name</a> <span>stuff written here</span> </p>

这个问题很容易解决:

$(this).closest('.article-content').children('p').children(':not(a)').text();

答案 2 :(得分:0)

$('a.retweet').click(function() 
{
    var retweetText = $(this).closest('.article-content').children('a').text();
}

答案 3 :(得分:0)

你可以这样做:

$('p').contents().last().text();

所以你有:

$(this).closest('.article-content').children('p').contents().last().text();

希望这会有所帮助。干杯

答案 4 :(得分:0)

这将返回textNode

$(this)
  .closest('.article-content')
  .children('p')
  .contents()
  .filter(function() { 
    return this.nodeType == 3;
})

这应该返回该节点的文本。

$('a.retweet').click(function () {
    var retweetText = $(this)
                        .closest('.article-content')
                        .children('p')
                        .contents()
                        .filter(function() { 
                          return this.nodeType == 3;
                        }).text();
}

答案 5 :(得分:0)

您在该功能中缺少);。试试这个 -

<强>的jQuery

$('a.retweet').click(function(e) {
    e.preventDefault();
    var retweetText = $(this).closest('.article-content').children('p').text();
    alert( retweetText );     
});

<强> HTML

<div class="article-content">
    <a href="#" class="retweet">Testing</a>
    <p>This is a paragraph</p>
</div>

工作演示:http://jsfiddle.net/G8MfP/