在jquery中添加一个包含多个链接的类

时间:2017-04-07 20:46:53

标签: javascript jquery

我正在添加具有过滤功能的第三方链接的背景图片,如下所示

$("a").filter(function () {
                var ignoreLink =
        this.hostname == location.hostname // disregard same domain
        || this.href.match(/^(mailto|tel|javascript)\:/)
                return !ignoreLink;
            }).addClass("externalanchor").attr("target", "_blank");

上面的代码工作正常现在我有一个要求说一些链接应该是内部ex:

<p><a href="https://www.google.com/" target="_blank">Email URL</a></p>
<p><a href="https://github.com/" target="_blank">Google</a></p>
<p><a href="https://www.w3schools.com" target="_blank">Google</a></p>
<p><a href="https://www.codecademy.com" target="_blank">Google</a></p>

我的问题是如何为这个链接添加一个类,只用jquery进行dom更改。

2 个答案:

答案 0 :(得分:1)

您可以使用attribute contains selector

$("a[href*='google.com'], a[href*='w3schools.com'], a[href*='codeacademy.com']").addClass('no-external');

答案 1 :(得分:0)

这样的事情对你有用吗?:

https://jsfiddle.net/khkmmjjn/1/

代码:

$("a").each(function(){

  if( $(this).attr("href").indexOf("https://jsfiddle.net") == 0 || 
     $(this).attr("href").indexOf("jsfiddle.net") == 0 )
  {
    $(this).addClass("local");
  }
  else if( $(this).attr("href").indexOf("mailto:") == 0 || 
     $(this).attr("href").indexOf("tel:") == 0 )
  {
    $(this).addClass("other");
  }
  else
  {
    $(this).addClass("external");
  }

});