我正在使用以下jQuery代码选择所有内部链接...
var siteURL = "http://" + top.location.host.toString();
var $internalLinks = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#']");
而且效果很好。我面临的唯一问题是我不想选择直接指向可下载文件的内部链接(例如http://www.example.com/downloadable.pdf)
扩展名可以是任何内容(pdf,mp3,jpg,gif,webm等)
现在的问题是,如何从上述标准中排除此类内部链接?
或者,如果我使用.not()函数排除此类链接,问题将是,如何选择直接指向此类可下载文件的所有内部链接?
一个简单的解决方案是使用filter
或not
正则表达式拒绝您不需要的链接:
var $internalLinks = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#']");
$internalLinks = $internalLinks.not(function () {
return $(this).attr('href').match(/\.(pdf|mp3|jpg|jpeg|etc)$/i);
});
相反,假设您所有的“不可下载” URL都以.html
或结尾.htm
,则将使用到filter
这些扩展名的链接:
$internalLinks = $internalLinks.filter(function () {
return $(this).attr('href').match(/\.html?/);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句