jQuery外部链接新窗口,将相对和相同的域链接视为内部链接

Han*_*sOg 2 jquery conditional jquery-selectors

我希望我的所有链接都不是xxx.domain.com而不是"/ relative"链接在外部窗口中打开.此代码显示问题,这是错误的,因为第一个条件选择器被第二个条件选择器立即覆盖.所以我要找的是多个条件选择器以及如何结合这两个测试,我没有运气的尝试:

尝试1)

$("#links a:not([href^='/']), #links a:not([href*='.domain.com/'])").live('click',function(e){
$(this).attr("target", "_blank");
});
Run Code Online (Sandbox Code Playgroud)

尝试2)

$("#links a:not([href^='/']).#links a:not([href*='.domain.com/'])
Run Code Online (Sandbox Code Playgroud)

尝试3)

$("#links a:not([href^='/']):not([href*='.domain.com/'])"
Run Code Online (Sandbox Code Playgroud)

尝试4)(我真的希望这个)

$("#link a:not([href^='/'])").live('click',function(e){
  $(this).attr("target", "_blank");
  $("#links a:is([href*='.domain.com/'])").removeAttr("target");
});


<div id="link"><a href="/relative-path.html">relative</a></div>
<div id="link"><a href="http://www.google.com/">offsite</a></div>
<div id="link"><a href="http://many.domain.com/">onsite</a></div>
<div id="link"><a href="http://any.domain.com/">onsite 2</a></div>
<div id="link"><a href="http://domain.com/">onsite 3</a></div>
Run Code Online (Sandbox Code Playgroud)

谢谢阅读!

Esa*_*ija 5

$(document.links).each( function(){
    this.target = ~this.href.indexOf( "domain.com/") ? "" : "_blank";
});
Run Code Online (Sandbox Code Playgroud)

href属性自动具有扩展的URL.