Jquery. Как обернуть голый текст в span.
Добрый день.
Есть например html код <div> сообщение <br>без тегов <p>Внутрений p</p> <span>Текст в спане</span> сообщение без тегов </div> Вообще дерево многоуровневое и большое. Мне нужно обернуть все безтеговые элементы например в span. по типу <span> сообщение <br>без тегов</span>. Как это можно сделать попроще? .text() - берет весть текст элемента, с учетом вложений(не подходит). Вариант тупого перебора у каждого элемента div[0]['childNodes'][0].nodeName искать #text и сшивать потом в куски - мне кажется будет очень долгим. Может есть метод попроще и побыстрее? Заранее спасибо. |
Ладно вопрос закрыт :)
Вроде подошел метод div.contents().filter(function() { return this.nodeType === 3 && $.trim(this.nodeValue) !== ''; }) .wrap('<span/>'); |
vuler,
как же Цитата:
|
Вообще согласен, что лишнего много будет, но это Html редактор, итоговая страница будет без спанов. они просто удалятся.
Функция применро такая function wrap_all_text(elem){ elem.children().each(function(){ wrap_all_text($(this)) }) elem.contents().filter(function() { return this.nodeType === 3 && $.trim(this.nodeValue) !== ''; }) .wrap('<span>'); } Единственное, что он пока спаном оборачивает и теги, где json данные хранятся, это сейчас буду править :) |
Часовой пояс GMT +3, время: 16:24. |