如何使用jQuery过滤HTML标记内的文本

时间:2009-07-25 17:09:00

标签: jquery

我想在div元素中抓取文本,如下所示:

<div class='someclass'> 
<blockquote>some text ! </blockquote>
another text goes here . 
</div>

所以我用jQuery获取所有文本:

var qtext = $('.someclass').text(); 

我想要排除子元素中的文本,例如<blockquote>some text ! </blockquote>。我只需要div元素中的文本。我该如何过滤?

3 个答案:

答案 0 :(得分:1)

请参阅“剥离HTML代码”:http://devkick.com/blog/parsing-strings-with-jquery/

答案 1 :(得分:1)

这是一种解决方法:

var div = $('.someclass').clone();
div = div.find('blockquote').remove().end();
alert(div.text());

答案 2 :(得分:0)

您想要的只是选择TextNodes:

var textNodes =   $('.someclass').contents()
                                 .filter(function() {
                                   return this.nodeType ==  Node.TEXT_NODE;
                                 });

这将为您提供一个TextNodes数组,然后您可以将所有节点的实际文本内容提取到数组中:

var textContents = $.map(textNodes, function(n){return n.textContent;});