- 締切済み
jqueryで文字列を置換したいのですが。
jqueryで文字列を置換したいのですが。 例えば<a href="http://*****/database.cgi?keys10=検索文字01"> みたいなアンカーがあったとして、これの”検索文字”の部分のみを置換して 例えば<a href="http://*****/database.cgi?keys10=検索文字02"> の様に置換することは可能でしょうか。 何卒、宜しくお願いいたします<m(_ _)m>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nue2501
- ベストアンサー率100% (3/3)
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://*****」の部分に影響はありません。 ※ソース部分のインデントは、見やすくするため全角スペースを利用していますのでご注意ください。