href
jQuery を使用してハイパーリンクの属性 (リンク ターゲット) を変更するにはどうすればよいですか?
ベストアンサー1
使用
$("a").attr("href", "http://www.google.com/")
すべてのハイパーリンクの href を Google を指すように変更します。ただし、もう少し洗練されたセレクターが必要になる可能性があります。たとえば、リンク ソース (ハイパーリンク) とリンク ターゲット (別名「アンカー」) のアンカー タグが混在している場合:
<a name="MyLinks"></a>
<a href="http://www.codeproject.com/">The CodeProject</a>
...おそらく、誤ってhref
属性を追加したくないでしょう。安全のために、セレクターが<a>
既存の属性を持つタグのみに一致するように指定できますhref
。
$("a[href]") //...
もちろん、もっと興味深いことを考えているかもしれません。アンカーを特定の既存の と一致させたい場合はhref
、次のようなものを使用できます。
$("a[href='http://www.google.com/']").attr('href', 'http://www.live.com/')
href
これにより、が文字列 と完全に一致するリンクが検索されますhttp://www.google.com/
。より複雑なタスクとしては、 の一部のみを一致させて更新することが考えられますhref
。
$("a[href^='http://stackoverflow.com']")
.each(function()
{
this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/,
"http://stackoverflow.com");
});
最初の部分では、 href がで始まるhttp://stackoverflow.com
リンクのみを選択します。次に、単純な正規表現を使用して URL のこの部分を新しい部分に置き換える関数が定義されます。これにより柔軟性が高まり、リンクに対するあらゆる種類の変更をここで行うことができます。