jQuery 「wrapAll」要素をまとめて親要素を追加する

.wrapAll()は、.wrap()と同様に、条件にマッチした要素を引数で指定した親要素でくるみます。ただし、.wrap()がマッチした要素それぞれに親要素を追加するのに対し、.wrapAll()はマッチした要素すべてを1つの親要素でくるみます。

書式

$( 対象要素 ).wrapAll( 親要素 );
$('p').wrapAll('<div></div>');

サンプル

付箋のdiv要素すべてをまとめて、親のdiv要素(.stickies)でくくる

<body>
<style>
  .sticky {
    background: #aaa;
  }
  .stickies {
    background: #00ffff;
  }
</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>
      <button class="button" id="unwrap">Unwarp</button>
      <button class="button" id="wrap">Wrap</button>
    </div>
    <div class="footer">
      <hr>
      <p class="copyright">2024 xxx all rights reserved.</p>
    </div>
  </div>
  <script>
    $(document).ready(function(){
      $('#unwrap').on('click',function(){
        $('.sticky').unwrap();
      });
      $('#wrap').on('click',function(){
        $('.sticky').wrapAll('<div class="stickies"></div>');
      });
    });
  </script>
</body>
実行結果
Wrapボタンをクリックした後
実行結果
Unwarpボタンをクリックした後