如何选择"a"标签在href中使用jQuery具有特定的文件类型?

use*_*041 4 javascript anchor jquery href selector

我使用以下命令定位包含jQuery中各种文件类型的链接:

jQuery('a[href$=".pdf"], a[href$=".doc"], a[href$=".docx"], a[href$=".ppt"], a[href$=".pptx"], a[href$=".xls"], a[href$=".slxs"], a[href$=".epub"], a[href$=".odp"], a[href$=".ods"], a[href$=".txt"], a[href$=".rtf"]').before('<span class="glyphicon glyphicon-file"></span> ');
Run Code Online (Sandbox Code Playgroud)

首先,有没有办法减少重复?例如

jQuery('a[href$=".pdf|.doc|.docx"])
Run Code Online (Sandbox Code Playgroud)

其次,有没有办法针对文件扩展名针对不同的情况,例如Pdf,PDFpdf

Moh*_*mad 7

您可以使用筛选选定的元素.filter().在过滤器功能中使用正则表达式检查扩展名String.prototype.match().

$("a").filter(function(){
   return $(this).attr("href").match(/\.(pdf|doc|docx|ppt|pptx|xls|slxs|epub|odp|ods|txt|rtf)$/i);
}).before("Some html");
Run Code Online (Sandbox Code Playgroud)

$("a").filter(function(){
  return $(this).attr("href").match(/\.(pdf|doc|docx|ppt|pptx|xls|slxs|epub|odp|ods|txt|rtf)$/i);
}).css("color", "red")
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="file.pdf">pdf</a>
<a href="file.doc">doc</a>
<a href="file.html">html</a>
<a href="file.docx">docx</a>
<a href="file.ppt">ppt</a>
<a href="file.php">php</a>
<a href="file.slxs">slxs</a>
<a href="file.txt">txt</a>
Run Code Online (Sandbox Code Playgroud)

请注意,i正则表达式末尾的标志不区分大小写.