jQuery(できれば)スクリプトをすべての単一<a>
タグを反復処理し、で始まらないものを見つけるにはどうすればよいですか
http://www.example.com/
src 属性を次のように変更します。
http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src)
また、適用しますrel="external" target="_blank"
か?
jQuery(できれば)スクリプトをすべての単一<a>
タグを反復処理し、で始まらないものを見つけるにはどうすればよいですか
http://www.example.com/
src 属性を次のように変更します。
http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src)
また、適用しますrel="external" target="_blank"
か?
概念の簡単な証明は次のとおりです。
HTML:
<a href="http://www.google.com">Google</a>
<a href="test.html">Test</a>
JavaScript:
$('a').not('[href^="http"]').each(function () {
var element = $(this);
element.attr('href', element.attr('href') + '?foo=baz');
element.attr('target', '_blank');
});
基本的に、JavaScript が行っていることは、先頭にない要素を見つけることですa
(独自のニーズに合わせて条件付きロジックを拡張し、URL のスラッシュなどをエスケープする必要がある問題を処理する必要があります)。 )、それへの参照をjQueryオブジェクトとして取得し(すでにjQueryオブジェクトであるかどうかは覚えていません。その部分を省略できる場合)、その属性を変更して属性を追加します。 http
this
href
target
このようなものがうまくいくと思います。
$('a')
.filter( function() { return $(this).attr('href').indexOf('www.example.com') !== 0; })
.each( function(i, el) {
var curHref = el.attr('href');
el.attr('rel', 'external');
el.attr('target', '_blank');
el.attr('href', 'http://www.example.com/outbound/verifyAge=0&dest='+encodeURIComponent(curHref));
});
要素に対して正規表現マッチングを行うプラグインがありますが、これに正規表現を使用するのはやり過ぎのように思えます。