WEBデザイン・プログラミング関連の
情報発信を手掛ける STAND4U

HOME > WEB制作 > javascript > jQuery「replaceWith / replaceAll」で指定要素を別の要素に置き換える

jQuery「replaceWith / replaceAll」で指定要素を別の要素に置き換える

[景品表示法に基づく表記] 本コンテンツにはプロモーションが含まれています。

jQueryのメソッド「.replaceWith() / .replaceAll()」は、指定した要素を「別の要素に置き換える」事ができるメソッド。

今回は、jQueryで「指定した要素を、別の要素に置き換える事ができる」メソッド「.replaceWith() / .replaceAll()」について、その使い方をサンプルを交えて解説しよう。

.replaceWith()と .replaceAll()の違い

.replaceWith() .replaceAll()は実は基本的に同じ機能。違いは、「セレクタ」と「置き換えるHTML」を記述する順番が違うだけ。

.html()との違い

HTMLを置き換えるメソッドとして、もうひとつ.html()メソッドがある。

.html()は、セレクタで指定した要素の中身(子要素orテキスト)を置き換えるのに対し、.replaceWith() .replaceAll()「指定した要素そのもの」を置き換えるという違いがある。

それでは、違いをそれぞれの構文で確認していこう。

.replaceWith()の構文

.replaceWith()の構文
$("セレクタ").replaceWith("<タグ>テキスト</タグ>");

セレクタで指定した要素を、パラメータで指定した「要素」に置き換える事ができる。

ちなみに、.replaceWith('<div class="test">テスト</div>')のようにあらかじめ「クラスやIDをつける」事も可能だが、シングルコーテーションとダブルコーテーションの関係に注意してほしい。

.replaceAll()の構文

.replaceAll()の構文
$("<タグ>テキスト</タグ>").replaceAll("セレクタ");

.replaceWith()とは逆に「先に置き換えるHTMLを指定」してから、.replaceAllのパラメータで置き換え元の要素を「セレクタ」で指定する形で、「要素」に置き換える事ができる。

jQueryで.replaceWith()を使って、指定要素を別の要素に置き換える例

jQuery
$(function(){
 $(".box p").replaceAll("<div>置換え完了</div>");
});
HTML (jQuery反映前)
<div class="box">
 <p>元の要素</p>
 <p>元の要素</p>
 <p>元の要素</p>
</div>

HTML (jQuery反映後)
<div class="box">
 <div>置換え完了</div>
 <div>置換え完了</div>
 <div>置換え完了</div>
</div>

このように書く事で$(".box p")と指定された複数のPを<div>置換え完了</div>に置き換える事ができる。

.replaceWith()、.replaceAll()のパラメータは「jQueryオブジェクトや式」を入れる事もできる

先程の例と違い、$("p")としてp要素全てに適用させて、さらにppの間には<div>など別の要素が存在する場合はどうなるのか、確認しておこう。

jQuery
$(function(){
 $(".box p").replaceWith()("<div>" + $(this).text() + "</div>");
});
HTML (jQuery反映前)
<div class="box">
 <p>元のテキスト</p>
 <p>元のテキスト</p>
 <p>元のテキスト</p>
</div>

HTML (jQuery反映後)
<div class="box">
 <div>元のテキスト</div>
 <div>元のテキスト</div>
 <div>元のテキスト</div>
</div>

この場合$(".box p")"<div>" + $(this).text() + "</div>"に置き換えるのだが、$(this)$(".box p")の事を指し、$(".box p").text()と同じ意味であり、その結果<div>元のテキスト</div>に差し替える事ができるのだ。

以上、jQueryで「.replaceWith()を使って、指定要素を別の要素に置き換える」方法でした。

その他のjQueryメソッドについて確認したい方は、jQueryメソッドを一覧で解説したこちらの記事を確認しておこう!

フロントエンドスキルをもっと早く・簡単にマスターしたい方へ!

JavaScriptやCSS・Sassなどフロントエンド学習は、初心者が「独学」で完全マスターするには半年以上かかり、相当根気よくやらないと挫折してしまうか、ライバルに出遅れてしまう…。

短期間でフロントエンド・WEBデザインをマスターするには?

私の経験だが、手軽なオンラインスクールを利用した方が圧倒的に早かった。独学だと「何からどこまで勉強すれば良いかわからない」ものを、これだけ学習すればOKというポイントをおさえた教科書で学習しながら、わからない点を質問し放題なので、多少の出費は必要だが2ヶ月程度でサクッと学べたので逆に経済的だった!(実際に私がオンラインスクールを受講して体感

では「オススメはどのスクール?」とよく聞かれるのだが、たった1つのおすすめスクールがある訳でなく、その人によって最適なスクールが違う

スクール選びのポイント
  • 学習スタイルが自分に合っているか?
  • 低価格でコスパの良い学習料金か?
  • 講師に質問しやすい環境か?
  • 無料体験できるスクールか?

数あるスクールの中から、実際に受講してわかった事や現役プロならでは目線で厳選・比較したこちらの記事「現役プロ比較!短期 「WEBデザインスクール12校」おすすめランキング!」を参考に自分に合ったスクールを探そう↓


※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項

関連記事

この記事を書いた人

編集長

WEBデザイン・グラフィックデザイン歴:約18年、HTMLコーディング、jquery、wordpress、イラストなど本業とし、WEBデザインコンサル・プログラミング・ライティング等にも勤しんでいます

プロフィールはこちら

Twitter @stand_4u_ をフォロー

新着記事