我正在尝试编写一个小的 jQuery / javascript 函数来搜索页面上的所有链接,识别标签链接到的文件类型,然后添加适当的类。此任务的目的是根据链接另一端的文件类型设置链接样式。
到目前为止,我有这个:
$(document).ready(function(){
$('#rt-mainbody a').each(function(){
linkURL = $(this).attr('href');
var match = linkURL.match("^.*\.(pdf|PDF)$");
if(match != null){$(this).addClass('pdf');}
});
});
然后我会继续这个概念来识别,例如,电子表格文件、Word 文档、文本文件、jpg 等。
它有效......但问题是,对我来说,这非常笨拙,因为我已经完全把它从我在 SO 和互联网上找到的零碎和草皮拼凑在一起 - 我相信一定有一个更整洁,更高效,这样做的可读性更高,但我不知道它可能是什么。有人可以给我吐口水和擦亮吗?
理想情况下,该函数应检测 (a) 扩展名位于 href 字符串的末尾,以及 (b) 扩展名前面有一个点。
谢谢!:)
编辑
哇!这样的回应!:) 多谢你们!
当我看到仅使用选择器的方法时,这有点令人震惊 - 但是我正在为其构建此应用程序的最终用户正在链接到众多资源网站上的 PDF(以及可能的其他 MIME),并且无法控制他们将链接到的文件名的大小写用法......使用选择器显然不是要走的路,因为结果会如此不一致。
编辑
大奖归@Dave Stein!:D
我将采用的解决方案是“设置它并保留它”脚本(让我玩弄它),它将适应任何扩展,无论大小写如何,我需要做的就是针对每个合理的可能性调整 CSS。
很高兴得知我已经非常接近最佳解决方案了……虽然 XD 更多的是靠运气而不是良好的判断力