我目前正在使用:
$(function () {
var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/, '') + "$");
$('.mainmenu a').each(function () {
if (urlRegExp.test(this.href.replace(/\/$/, ''))) {
$(this).addClass('active');
}
});
});
由于我使用的'mainmenu a'标签有一个带有link.html的href,当url包含link.html时,此脚本运行良好。但是,当网址包含ie / link / page(没有.html扩展名)时,我也希望这可以工作,反之亦然。基本上我希望这与包含.html扩展名的url一起使用,并且链接是一个目录。这可能吗?
答案 0 :(得分:0)
是的,只需在进行比较之前用空字符串替换.html
。然而,问题的真正解决方案是不允许在您的网站上混合使用干净的URL和基于文件名的URL。
你可以这样做:
$(function () {
var url = window.location.pathname.toLowerCase().replace(/(\/|\.html)$/, '').replace(/^\//, '');
$('.mainmenu a').each(function () {
var href = this.href.toLowerCase().replace(/(\/|\.html)$/, '').replace(/^\//, '');
if (url === href) {
$(this).addClass('active');
return false; // break out of each()
}
});
});