Показать сообщение отдельно
  #1 (permalink)  
Старый 22.05.2009, 20:01
Andrey32
 
Сообщений: n/a

Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров?
(Требуется реализовать некое подобие цитирования.)
Есть див. В нем перемежаются дивы и текст. Например так:
<div class="a">
123
<div>абв</div>
456
<div>где</div>
</div>

Метод text берет весь текст включая текст вложенных элементов (как и написано в доках), т.е.:
$('.a').text() вернет 123абв456где

Требуется получить только текст 123456.


Пока надумал такие варианты:
1) [ОТПАДАЕТ сразу] брать вначале общий текст, потом текст всех дочерних элементов, потом replace и заменять. ОТПАДАЕТ сразу по причине того что в дочернем диве может быть например одна буквы и мы лишимся всех букв.
2) [не нравится реализация] копировать innerhtml в невидимый контейнер, потом в этом контейнере удалять дочерние блоки, только потом брать текст. Какое то странное решение
3) забрать аяксом. Плюсы - могу оформить вложенные дивы как надо (там некое подобие цитат из ББкода). Минусы - задержка и нагрузка (которых очень не хотелось бы) и смысла в этом нет, потому что для цитаты достаточно текста родительского поста.

Может кто подскажет, а то уже к концу недели ничего дельного в голову не лезет
Ответить с цитированием