• ベストアンサー

jqueryでの文字置換について

jqueryを使った文字の置換を行いたいのですがうまくいきません。 どなたかお詳しい方、ご教授いただけますでしょうか。 よろしくお願いします。 ■行いたいこと <div class="bbb"><img src="0123.jpg"></div> をwindow読み込み時に <div class="bbb"><img src="0123s.jpg"></div> と置き換えしたい。 javascriptのソースは以下の通りです。 <script src="jquery-min.js"></script> <script type="text/javascript"> <!-- $(function(){ var aaa = $('.bbb'); aaa.html().replace(/.jpg/ig, "s.jpg"); }); // --> </script>

質問者が選んだベストアンサー

  • ベストアンサー
noname#137826
noname#137826
回答No.2

これでどうでしょう? $(function(){ $('.bbb > img').each(function(){ var newurl = $(this).attr('src').replace(/\.jpg/ig, 's.jpg'); $(this).attr('src', newurl); }); })

thurthda
質問者

お礼

ありがとうございます! 考えていたことが出来ました。 とても助かりました<(_)>。

その他の回答 (1)

回答No.1

質問のコードでは文字列を置き換えているだけです。 ・置き換えた文字列を代入してやる必要があります aaa.html(aaa.html().replace(/.jpg/ig, "s.jpg")); ※正規表現についてですが、、、 文字列.はメタキャラなので今回のような使い方は避けたほうがいいです。 ⇒ /\.jpg/

thurthda
質問者

補足

ご回答いただきありがとうございます。 正規表現のご指摘も参考になりました。 試してみたところ、変換はできたのですが、 以下の状況になってしまいました。 <div class="bbb"><img src="0123.jpg"></div> <div class="bbb"><img src="4567.jpg"></div> とあったとしたら、 <div class="bbb"><img src="0123s.jpg"></div> <div class="bbb"><img src="4567s.jpg"></div> としたいのですが、 <div class="bbb"><img src="0123s.jpg"></div> <div class="bbb"><img src="0123s.jpg"></div> となってしまいます。解消方法はあるでしょうか?