[ jQuery ] Target Blank Links - JavaScript - Snipplr Social Snippet Repository
をみてたときの話。
jQueryセレクタに@を使うと…
ソースのセレクタ内に@があったのですがよくわからずに悶々としたので調べました。
[php highlight="1"]
$('a[@rel$='external']').click(function(){
this.target = "_blank";
});
[/php]
答えは
jQuery1.2まではセレクタの属性指定に@が使えたが、jQuery1.3からはつかえませんよーとこと。
jQuery1.3 リリースノート - jQuery 日本語リファレンス
いまのlatestバージョンだと
[html highlight="1"]
$('a[rel$='external']').click(function(){
this.target = "_blank";
});
[/html]
が正しい。
ついでにhtmlの解説
jQueryのセレクタはCSSのセレクタと同じ指定。
サンプルhtmlの指定
aタグのrel属性の後ろの文字列がexternalでおわっているものをクリックしたら(後方一致)
target="_blank"で開きなさいの意味
サンプルhtml
[html]
<script src="http://code.jquery.com/jquery-1.7.min.js"></script>
<script>
$(function(){
$('a[rel$="external"]').click(function(){
this.target = "_blank";
});
)};
</script>
<!-- 別ウィンドウで開く-->
<a href="http://yahoo.co.jp/" rel="external">ヤフー</a><br>
<!-- 別ウィンドウで開く-->
<a href="http://google.co.jp/" rel="linkexternal">グーグル</a><br>
<!-- 別ウィンドウで開かない-->
<a href="http://jp.msn.com/" rel="externallink">msn</a><br>
[/html]
前方一致でセレクタ指定をしたい場合
[php highlight="1"]
$('a[$rel="external"]').click(function(){
this.target = "_blank";
});
[/php]
完全一致でセレクタ指定をしたい場合
[php language="external"]').click(function(){
this.target = "_blank";
});
[/php]