2013-02-07 1 views
0

나는이 이상 내가 제어 할 수 없습니다 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>"); 

그러나, 이것은 h1 태그의 div 내의 모든 요소를 ​​래핑합니다. h1에 첫 번째 텍스트 노드를 정확히 찾아서 감쌀 수 있습니까? Blazemonger의 코멘트에있는 링크의 해제 작업을 감사 데이브

+0

jquery는 텍스트 노드를 다루는 데별로 좋지 않습니다. jquery 밖에서 일하는 것이 더 낫다. –

+0

가능한 복제 http://stackoverflow.com/q/298750/901048 – Blazemonger

+0

감사합니다. @Blazemonger. 그 스레드에서 마지막 예제를 보았습니다. var myText = $ ('# sub-nav'). contents (': not (ul)'). - 어떻게 myText 변수를 사용하여 h1에서 해당 값을 래핑 할 수 있습니까? – Dave

답변

1

...

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

은 ... 귀하의 경우에 작동해야한다.

+0

그러나, 나는 그것이 매우 특수하고 이상한 부작용이 만연 함을 인정할 것이다. – Maple

+0

글쎄, 그것은 작동 :)이 경우에는 하위 menues 그 순서> 텍스트 노드> ul – Dave

+0

이상적인 솔루션, 또는 다른 상황에서 사용할 수있는 하나,하지만 내 경우에는, 그것은 벌금. – Dave

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