Найти текстовый узел, затем обернуть в теги
У меня есть следующий бит 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>");