Как отфильтровать текст внутри тега HTML с помощью jQuery - PullRequest
1 голос
/ 25 июля 2009

Я хочу получить текст внутри элемента div следующим образом:

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

, поэтому я получаю весь текст с помощью jQuery следующим образом:

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

Я хочу исключить текст, который находится вдочерние элементы, например <blockquote>some text ! </blockquote>. Мне просто нужен текст внутри элемента div. Как я могу отфильтровать это?

Ответы [ 3 ]

1 голос
/ 25 июля 2009

Это обходной путь:

var div = $('.someclass').clone();
div = div.find('blockquote').remove().end();
alert(div.text());
1 голос
/ 25 июля 2009

См. "Полоски HTML-тегов": http://devkick.com/blog/parsing-strings-with-jquery/

0 голосов
/ 25 июля 2009

Вам нужно только выбрать TextNodes:

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

Это даст вам массив TextNodes, после чего вы можете извлечь фактическое текстовое содержимое всех узлов в массив:

var textContents = $.map(textNodes, function(n){return n.textContent;});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...