jQuery:为所有可下载链接添加一个class

jQuery: Adding a class to all downloadable links

我正在尝试将 .dl class 添加到所有具有 任何 文件后缀(扩展名)的链接,但 .pdf.html。我不希望我的其他(外部和内部)链接受到影响。

$('a').not("a[href^='http://'], a[href^='https://'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#'], a[href$='.pdf'], a[href$='.html']").addClass( 'dl' );

使用我的代码,一些相关链接和外部链接会受到影响。我能做些什么来修复它?

谢谢!

您可以考虑尝试这种方法。

文件名数组表示您要添加的所有后缀class。

var fileNames = ["suffix1", "suffix2"];

$("a").each(function(index, element){
  fileNames.forEach(function(fileName){
    if($(element).attr("href").startsWith(fileName)){
      $(element).addClass("dl");
    }
  });
});
.dl {
  color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="suffix1">addClass suffix1</a>
<a href="http://">don't add</a>
<a href="suffix2">addClass suffix2</a>
<a href="https://">don't add</a>