jQueryは、いろんな要素に対して指定した処理を行うためにeach
メソッドがあります。
この記事で紹介のjQueryのスニペットは、元ネタの文字列を直接変更することができない状態で、表示させる側で文字列を置換・削除したい場合に使っています。
例えば、外部から文字列を引っ張ってきた場合です。
結構基本的なメソッドで、コピペするだけでも簡単にできるので見てみましょう。
複数の特定した文字列や要素の置換のサンプル
置換のサンプル
早速、jQueryで置換をしたサンプルです。
- ⽝ → 青い犬
- マーメイド → 赤いマーメイド
上記の2つの文字列をそれぞれ置換しています。置換前と後のサンプルを順に記載しているのでご覧ください。
愛し合う姿はキレイキレイ
こんがらった想いはそれだけで⽝も喰わねぇよ俺の友達いつだって正直だっただけさ
俺のマーメイドを俺のマーメイドを探してくれよ俺のマーメイドを俺のマーメイドを返してくれよ
お前のそのくそったれの世界俺はどうしようもなく愛おしい
the birthday – 「くそったれの世界」より
↓
愛し合う姿はキレイキレイ
こんがらった想いはそれだけで⽝も喰わねぇよ俺の友達いつだって正直だっただけさ
俺のマーメイドを俺のマーメイドを探してくれよ俺のマーメイドを俺のマーメイドを返してくれよ
お前のそのくそったれの世界俺はどうしようもなく愛おしい
the birthday – 「くそったれの世界」より
jQueryのコード
コードを表示する
$(document).ready(function(){
$('.sampletext1').each(function(){
var txt = $(this).html();
$(this).html(txt
.replace(/マーメイド/g,'<span class="red">赤いマーメイド</span>')
.replace(/⽝/g,'<span class="blue">青い犬</span>')
);
});
});
ちょっとした解説
$('置換の対象にするclass').each(function(){
jQueryで複数のオブジェクトに対して繰り返し処理を行う場合、each()
メソッドを使用します。
そして、.each()
の前で対象にするclassを指定します。もちろんタグでもOKです。
.replace(/置換したい文字列/g, '置換後の文字列');
.replace()
で/置換したい文字列/g
を使って文字列の指定をします。
このコピペ用コードでは、g
を使って対象を絞っていますが、これ以外にも以下のように対象範囲を指定することができます。
フラグ | 説明 |
---|---|
g | グローバルマッチ |
i | 大文字と小文字の違いを無視する |
m | 複数行を越えたマッチ(検索) |
対象を増やす場合、.replace(/置換したい文字列/g, '置換後の文字列');
を追記すればOKです。
複数の特定した文字列や要素を削除
この前の「置換」の応用です。
削除のサンプル
今度は、jQueryで削除をしたサンプルです。
- ⽝ → 削除
- マーメイド → 削除
置換の時と同じ2つの文字列を、それぞれ削除しています。削除前と後のサンプルを順に記載しているのでご覧ください。
愛し合う姿はキレイキレイ
こんがらった想いはそれだけで⽝も喰わねぇよ俺の友達いつだって正直だっただけさ
俺のマーメイドを俺のマーメイドを探してくれよ俺のマーメイドを俺のマーメイドを返してくれよ
お前のそのくそったれの世界俺はどうしようもなく愛おしい
the birthday – 「くそったれの世界」より
↓
愛し合う姿はキレイキレイ
こんがらった想いはそれだけで⽝も喰わねぇよ俺の友達いつだって正直だっただけさ
俺のマーメイドを俺のマーメイドを探してくれよ俺のマーメイドを俺のマーメイドを返してくれよ
お前のそのくそったれの世界俺はどうしようもなく愛おしい
the birthday – 「くそったれの世界」より
jQueryのコード
コードを表示する
<script>
$(document).ready(function(){
$('.sampletext2').each(function(){
var txt = $(this).html();
$(this).html(txt
.replace(/マーメイド/g,'')
.replace(/⽝/g,'')
);
});
});
</script>
ちょっとした解説
.replace(/置換したい文字列/g, '置換後の文字列');
.replace()
の中の'置換後の文字列'
を空白に(スペースなどの文字列を全く入れない)すればOKです。それ以外の記述は、置換の時のコードと全く一緒です。
さいごに
each
メソッドは、このように複数の要素を一括処理できるので便利なメソッドです。
うまく使いながら目的の操作を成功させていきましょう。