0

我有:

<div id="container">
    <div class="comment_text">
        <a>Blah blah</a> THIS IS WHAT I NEED
    </div>
</div>

我想THIS IS WHAT I NEED从上面的 div 中获取文本,这是我通常做的:

var val = $.trim($('#container').find('.comment_text').text());

但这也得到了a标签,所以我应该如何只得到文本?我正在考虑 next() 但它不起作用:

 var val = $.trim($('#container').find('.comment_text a').next().text());

谢谢

4

4 回答 4

7

使用 jQuery 获取展开的文本节点需要更多的参与:

$('#container .comment_text').contents().filter(function() {
    return this.nodeType === 3;
}).text();

小提琴

你也应该适当地修剪它。

你也可以这样做:

$('#container .comment_text a').get(0).nextSibling.nodeValue;

小提琴

于 2013-06-18T11:32:28.530 回答
2
$('#container').clone().find('a').remove().end().text();

您可以暂时移除锚点以获取剩余的文本,并且通过克隆它不会中断 DOM 元素。

于 2013-06-18T11:34:33.737 回答
2

您需要克隆 div 并删除锚点,然后您将获得文本:

var clone = $('.comment_text').clone();
clone.find('a').remove();

var val = $.trim(clone.text());
于 2013-06-18T11:44:45.893 回答
-1

您可以尝试以下方法:

var val = $.trim($('.comment_text').find("a").html();
于 2013-06-18T11:38:37.137 回答