JavaScriptの文字列置換とjQueryのDOM要素置換のまとめ

JavaScriptの文字列置換とjQueryのDOM要素置換のまとめ

Posted at August 10,2012 2:34 AM
Tag:[JavaScript, jQuery]

JavaScriptの文字列置換とjQueryのDOM要素置換について、まとめて紹介します。

特にJavaScriptの文字列置換はいつもやり方を忘れてしまうので、このエントリーに保存しておきます。

1.replace()による文字列置換

基本的な文字列置換は、JavaScriptのreplace()メソッドを利用します。

var text = "foofoo";
var result = text.replace('foo', 'bar');

実行結果(resultの内容)

barfoo

2.replace()の正規表現による置換

replace()メソッドの第1パラメータに正規表現を指定すれば、さらに強力な文字列置換が行えます。

var text = "foofoo";
var result = text.replace(/foo/g, 'bar');

実行結果(resultの内容)

barbar

後方参照やグループ化なども可能です。

<script>
var text = "abcfooabc";
var result = text.replace(/^(.*)foo(.*)$/, '$1$2');
</script>

実行結果(resultの内容)

abcabc

3.jQueryのreplaceWith()によるDOM要素置換1

jQueryのreplaceWith()メソッドを使えば、例えば次のようなDOM要素の置換が行えます。

<div>foo</div>
<script>
$(function(){
    $('div').replaceWith('<div>bar</div>');
});
</script>

実行後のHTMLマークアップ

<div>bar</div>

4.jQueryのreplaceWith()によるDOM要素置換2

replaceWith()メソッドのパラメータに関数を定義すれば、次のようなDOM要素の置換が行えます。

<div class="container">
  <div class="inner">foo</div>
  <div class="inner">bar</div>
</div>
<script>
$(function(){
    $("div.container").replaceWith(function() {
        return $(this).contents();
    });
});
</script>

実行後のHTMLマークアップ

<div class="inner">foo</div>
<div class="inner">bar</div>

5.jQueryのreplaceAll()によるDOM要素置換

replaceAll()メソッドは、replaceWith()メソッドと逆の指定を行います。replaceAll()メソッドのパラメータにターゲットの要素やclass属性を指定し、置換する内容を先頭に記述します。

<div>foo</div>
<script>
$(function(){
    $('<div>bar</div>').replaceAll('div');
});
</script>

実行後のHTMLマークアップ

<div>bar</div>

次のように記述すれば、class属性値「third」のマークアップを、class属性値「first」のマークアップに置き換え、class属性値「first」の元のマークアップは消去されます。

<div class="first">Hello</div>
<div class="second">And</div>
<div class="third">Goodbye</div>
<script>
$(function(){
    $('.first').replaceAll('.third');
});
</script>

実行後のHTMLマークアップ

<div class="second">And</div>
<div class="first">Hello</div>

6.参考サイト

参考サイトは下記です。ありがとうございました。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)