找到文本节点,然后包装标签

时间:2013-02-07 15:07:37

标签: jquery textnode

我有以下一点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 个答案:

答案 0 :(得分:1)

使用Blazemonger评论中的链接...

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

......应该适合你的情况。

答案 1 :(得分:0)

$('#sub-nav').contents().filter(function(){
    return this.nodeType === 3; //text node type
}).eq(0).wrap("<h1></h1>");