基礎編
wrap
マッチする要素を1つずつ囲む場合は wrap を使います。
<div class="hoge">
<span>span</span>
<span>span2</span>
<b>b</b>
</div>
$( '.hoge span' ).wrap( '<p></p>' );
<div class="hoge">
<p><span>span</span></p>
<p><span>span2</span></p>
<b>b</b>
</div>
wrapInner
マッチする要素の子要素を囲む場合は wrapInner を使います。
<div class="hoge">
<span>span</span>
<span>span2</span>
<b>b</b>
</div>
$( '.hoge' ).wrapInner( '<p></p>' );
<div class="hoge">
<p>
<span>span</span>
<span>span2</span>
<b>b</b>
</p>
</div>
$( '.hoge span' ).wrapInner( '<i></i>' );
<div class="hoge">
<p>
<span><i>span</i></span>
<span><i>span2</i></span>
<b>b</b>
</p>
</div>
wrapAll
マッチする要素を1つにまとめて囲む場合は wrapAll を使います。
<div class="hoge">
<span>span</span>
<span>span2</span>
<b>b</b>
</div>
$( '.hoge span' ).wrapAll( '<p></p>' );
<div class="hoge">
<p>
<span>span</span>
<span>span2</span>
</p>
<b>b</b>
</div>
応用編
特定の子要素を除く子要素全てを1つの要素で囲みたい
全体を1つにまとめたいけど、特定の要素だけは含めたくないという場合の方法を紹介します。
下記は「i要素以外を1つのpで囲みたい場合」の例です。
<div class="hoge">
<span>span</span>
<i>span2</i>
<b>b</b>
</div>
var hoge = $( '.hoge' ); var hoge.children( '*:not( i )' ).wrapAll( '<p></p>' );
<div class="hoge">
<i>span2</i>
<p>
<span>span</span>
<b>b</b>
</p>
</div>
