Java 将活动类添加到所选页面(带或不带尾随斜杠)
我有一个选择器正在将活动类添加到所选页面。 但是,其仅适用于尾随斜杠,例如,如果其: Site.com/TEST/工作正常 但是,如果它的站点是.com/TEST,那么它就不会 使用“后退”按钮时会出现问题,因为它会将我带回页面,但没有尾随/ 这是我的密码: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'); }); 是否有人
$(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,我希望问题仍然是活动类。