0

我正在尝试确定传出链接并将 target=”_blank” 添加到它们。但是我想添加一个过滤器并排除一些外部链接,我该怎么做?

例如:假设我的域是 mydomain.com,我希望从它发出的所有外部超链接都具有 target=_blank ,Microsoft.com、Google.com、Wikipedia.com 等除外。我如何排除这些 url。

这是我到目前为止所写的

$('a[href^="http://"]').attr('target','_blank');
4

1 回答 1

0

你可以使用 afilter()来做到这一点。

这确实很冗长,但您可以使用三元、正则表达式或任何您想检查 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');
于 2013-09-19T18:31:31.210 回答