1

jQuery(できれば)スクリプトをすべての単一<a>タグを反復処理し、で始まらないものを見つけるにはどうすればよいですか

http://www.example.com/ 

src 属性を次のように変更します。

http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src) 

また、適用しますrel="external" target="_blank"か?

4

2 に答える 2

2

概念の簡単な証明は次のとおりです

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オブジェクトであるかどうかは覚えていません。その部分を省略できる場合)、その属性を変更して属性を追加します。 httpthishreftarget

于 2012-04-19T19:18:53.587 に答える
0

このようなものがうまくいくと思います。

​$('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));             
    }​);

要素に対して正規表現マッチングを行うプラグインがありますが、これに正規表現を使用するのはやり過ぎのように思えます。

于 2012-04-19T19:22:49.717 に答える