• 締切済み

jqueryで文字列を置換したいのですが。

jqueryで文字列を置換したいのですが。 例えば<a href="http://*****/database.cgi?keys10=検索文字01"> みたいなアンカーがあったとして、これの”検索文字”の部分のみを置換して 例えば<a href="http://*****/database.cgi?keys10=検索文字02"> の様に置換することは可能でしょうか。 何卒、宜しくお願いいたします<m(_ _)m>

みんなの回答

  • nue2501
  • ベストアンサー率100% (3/3)
回答No.1

Aタグ自体にクラス(できればID)などがあれば、絞り込みが出来て処理速度も向上するのでいいのですが、そうでもなさそうなのでページ内のAタグを全部取り出して、処理をすることで対応できるのではないかと思います。 例えば、 $(function() {  $('a').each(function() {   if ($(this).attr('href').match(/\/database[.]cgi[?]keys10=検索文字01$/)) {    $(this).attr('href', 'http://*****/database.cgi?keys10=検索文字02');   }  }); }); といった感じです。この場合は、置換したい文字列をハードコードしているので、置換したいURLのドメインが同一である必要があります。ドメインなどに関係なく置換したい場合は、 サンプル2: $(function() {  $('a').each(function() {   var hrefText = $(this).attr('href');   if (hrefText.match(/\/database[.]cgi[?]keys10=検索文字01$/)) {    hrefText = hrefText.replace(/\/database[.]cgi[?]keys10=検索文字01$/, '/database.cgi?keys10=検索文字02');    $(this).attr('href', hrefText);   }  }); }); といった感じでしょうか。この場合は、リンクURLを取り出して「/database.cgi?keys10=検索文字01」だけを対象に置換するので「http://*****」の部分に影響はありません。 ※ソース部分のインデントは、見やすくするため全角スペースを利用していますのでご注意ください。

すると、全ての回答が全文表示されます。

専門家に質問してみよう