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>
我正在尝试将 .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>