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, время: 01:10. |