Найти текстовый узел, затем обернуть в теги

У меня есть следующий бит HTML, который я не могу контролировать:

<div id="sub-nav">
Vendita diretta            
<ul class="cms-nav-sidebar">            
<li class="icl-level-1"><a href="/tasting/">Degustazioni</a></li>
</ul>                           
</div>

Мне нужно обернуть первый бит текста в "суб-навигации" divв <h1> тег. Пока у меня есть это:

$('#sub-nav').children().wrap("<h1></h1>");

Однако это оборачивает все элементы внутри div в h1 тег. Как я могу точно определить только первый текстовый узел и обернуть его в h1?

Спасибо Дэйв

2 ответа

Решение

Отработка ссылки в комментарии Blazemonger...

$('#sub-nav').contents(':not(ul)').wrap("<h1></h1>");

... должен работать в вашем случае.

$('#sub-nav').contents().filter(function(){
    return this.nodeType === 3; //text node type
}).eq(0).wrap("<h1></h1>");
Другие вопросы по тегам