Java 将活动类添加到所选页面(带或不带尾随斜杠)

Java 将活动类添加到所选页面(带或不带尾随斜杠),java,jquery,html,css,asp.net-mvc-4,Java,Jquery,Html,Css,Asp.net Mvc 4,我有一个选择器正在将活动类添加到所选页面。 但是,其仅适用于尾随斜杠,例如,如果其: Site.com/TEST/工作正常 但是,如果它的站点是.com/TEST,那么它就不会 使用“后退”按钮时会出现问题,因为它会将我带回页面,但没有尾随/ 这是我的密码: $(document).ready(function () { $('a[href="' + this.location.pathname + '"]').parent().addClass('active'); }); 是否有人

我有一个选择器正在将活动类添加到所选页面。 但是,其仅适用于尾随斜杠,例如,如果其:

Site.com/TEST/工作正常

但是,如果它的站点是.com/TEST,那么它就不会

使用“后退”按钮时会出现问题,因为它会将我带回页面,但没有尾随/

这是我的密码:

$(document).ready(function () {
    $('a[href="' + this.location.pathname + '"]').parent().addClass('active');
});
是否有人可以修改此项以将类添加到这两个变体中? 另外,如果可能的话,如果我选择父对象的子页面,是否可以对其进行修改,以便将活动类添加到父对象

例如,Site.com/Test/Edit我希望将测试设置为活动

谢谢

str.replace/\/+$/,+'/'将始终确保字符串以/结尾,因此您的代码如下所示:

$(document).ready(function () {
    str = this.location.pathname.replace(/\/+$/,'') + '/';
    $('a[href="' + str + '"]').parent().addClass('active');
});
如果不知道所有链接是否以斜杠结尾,则可以检查所有内容:

$(document).ready(function () {
    str1 = this.location.pathname.replace(/\/+$/,'') + '/';
    str2 = this.location.pathname.replace(/\/+$/,'');
    $('a[href="' + str1 + '"], a[href="' + str2 + '"]').parent().addClass('active');
});
编辑

让我们尝试选择所有父链接:

var tmp = this.location.pathname.replace(/.*?:\/\//g, "").replace(/\/+$/,'');
arr = tmp.split('/');
while(arr.length > 1) {
  tmp = 'http://' + arr.join('/');
  $('a[href="' + tmp + '"], a[href="' + tmp + '/"]').parent().addClass('active');
  arr = arr.slice(0,-1);
}
基本上,我从一开始就删除http://并将字符串拆分为每个/上的数组元素。然后,我一个接一个地移除末端元素,再次粘合它,并相应地构造选择器

这里是它的作用,它是如何生成链接的:

$“测试”。单击函数{ //我用输入值替换了字符串以进行测试 var tmp=$'input'.val.replace/*?:\/\//g.replace/\/+$/,; arr=tmp.split'/'; //在这里清除输出 $'div'.html; 当r.length>1时{ tmp='http://'+arr.join'/'; //追加当前结果 $'div'。追加''+tmp+'/

'; $'a[href='+tmp+'],a[href='+tmp+'/]'.parent.addClass'active'; arr=arr.0,-1; } }; 测验
这太棒了,谢谢你!厚颜无耻,我知道,但你知道我如何修改它,使父级在选择子页面时处于活动状态,例如Site.com/TEST/Edit仍将使测试链接成为活动属性。谢谢,不幸的是,现在似乎根本不起作用!!用测试仪再次更新。嘿,不幸的是没有,但我想我现在应该没事了。非常感谢你的努力,我很感激。Skatch-我不知道这是否有用,但该项目正在使用MVC4。我仍然无法使子页面为父级提供活动类。例如,site.com/questions可以正常工作,并且已应用活动选项。如果我访问site.com/questions/create,我希望问题仍然是活动类。