jQuery 「replaceWith」すべての対象要素を置換する

.replaceWith()メソッドは、条件にマッチした対象要素を置換内容で置き換えます。同様のメソッドに.replaceAll()があります。両者は基本的に同じ目的のメソッドですが、対象要素の検索式と内容の指定が真逆になります。jQuery1.4以降、引数にクロージャを定義して、置換内容を動的に生成できるようになりました。

書式

$( 対象要素 ).replaceWith( 置換内容 );
$( 対象要素 ).replaceWith( function() { 処理… } );
$('.list').replaceWith('<span>置き換えました</span>');
$('div').replaceWith(function() {
  return $(this).index() + '番目のdivブロックです';
});

サンプル

ボタンをクリックで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>
      <input class="button" type="button" name="submit" value="ふわふわオムライスに置き換える">
    </div>
    <div class="footer">
      <hr>
      <p class="copyright">2024 xxx all rights reserved.</p>
    </div>
  </div>
  <script>
    $(document).ready(function(){
      $('.button').on('click',function(){
        $('img').replaceWith('<img src="./images/1728875_s.jpg"  width="200px" height="100px">');
      });
    });
  </script>
</body>
実行結果
初期画面
実行結果
「ふわふわオムライスに置き換える」ボタンをクリックした後