我正在尝试确定外向链接并向其添加target =“_ blank”。但是我想添加一个过滤器并排除一些外部链接,我该怎么办?
例如:假设我的域名是mydomain.com,我想要从中获取所有外部超链接,除了 Microsoft.com,Google.com,Wikipedia.com等
这是我到目前为止所写的内容
$('a[href^="http://"]').attr('target','_blank');
答案 0 :(得分:0)
您可以使用filter()
来执行此操作。
这一点真的很冗长,但你可以使用三元,正则表达式或任何你想要检查几乎任何东西的href:
$('a').filter(function() {
var ret = false;
if ( this.href.indexOf('http://') === 0 ) { // everything that starts with http://
if ( this.href.indexOf('http://google.com') === 0 ) { // starts with ...
ret = true;
}
// or if
if ( this.href.indexOf('microsoft.com') != -1 ) { // href contains microsoft.com
ret = true;
}
}
return ret;
}).attr('target','_blank');
使用正则表达式:
$('a').filter(function() {
var rgx = new RegExp('/^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?(microsoft\.com|google\.com|yahoo\.com)$/','gi');
return this.href.match(rgx);
}).attr('target','_blank');