jQuery 「wrap」要素それぞれに親要素を追加する

.wrap()は、.unwrap()の対になるメソッドです。条件にマッチした要素を、引数で指定した親要素でくるみます。例えば、「<p>xxxxxx</p>」に対して「$(‘p’).wrap(‘<div></div>’);」が実行された場合、p要素の親要素としてdivが挿入されます。jQuery1.4以降、引数にクロージャが定義できるようになり、親要素の動的な定義が可能になりました。

書式

$( 対象要素 ).wrap( 親要素 );
$( 対象要素 ).wrap( function() {処理…});
$('p').wrap('<div></div>');
$('.child').wrap(function() {
  return '<div class="'+$(this).text()+'">';
});

サンプル

すべてのp要素をdiv要素でくくる

<body>
<style>
  .sticky {
    background: #aaa;
  }
</style>
  <div class="main">
    <div class="header">
      <h1>サンプル</h1>
    </div>
    <div class="content">
      <div class="sticky">
        <p>コロッケ定食</p>
        <fingure><img src="./images/112083_s.jpg" width="200px" height="100px"></fingure>
      </div>
      <div class="sticky">
        <p>オムライス</p>
        <fingure><img src="./images/2227584_s.jpg" width="200px" height="100px"></fingure>
      </div>
      <div class="sticky">
        <p>ホットドッグ</p>
        <fingure><img src="./images/1418030_s.jpg" width="200px" height="100px"></fingure>
      </div>
    </div>
    <div class="footer">
      <hr>
      <p class="copyright">2024 xxx all rights reserved.</p>
    </div>
  </div>
  <script>
    $('p').wrap('<div class="wrapper"></div>');
  </script>
</body>
実行結果
実行結果