gpt4 book ai didi

javascript - 使用 window.location 设置选定的导航选项

转载 作者:行者123 更新时间:2023-11-30 20:50:31 24 4
gpt4 key购买 nike

我有一个主题,它根据您访问的 URL 设置选定的左侧导航选项。但是,如果 是附加到 URL 的变量,例如 www.test.com/abc.aspx?delete=1,它就会中断。 URL www.test.com/abc.aspx 工作正常并将链接 ABC 设置为事件。

我试图修改代码以切断 ? 之后的所有内容,包括 ?,但它不会按预期工作(NAV 中的任何内容都未被选中)。

原始代码:

$(function () {
var url = window.location;
var element = $('ul#sidebarnav a').filter(function () {
return this.href == url;
}).addClass('active').parent().addClass('active');
while (true) {
if (element.is('li')) {
element = element.parent().addClass('in').parent().addClass('active');
}
else {
break;
}
}

});

我编辑的代码:

$(function () {
var url = window.location.toString();
var url_fix = url.split('?');
var element = $('ul#sidebarnav a').filter(function () {
return this.href == url_fix[0];
}).addClass('active').parent().addClass('active');
while (true) {
if (element.is('li')) {
element = element.parent().addClass('in').parent().addClass('active');
}
else {
break;
}
}
});

我认为是“return this.href == url_fix[0];”这一行那是罪魁祸首。

解决方案(我在阅读评论后想到的,谢谢大家):

$(function () {
var url = location.href.split("/").slice(-1).toString();
var url_fix = url.split('?');
var element = $('ul#sidebarnav a').filter(function () {
return $(this).attr("href") == url_fix[0];
}).addClass('active').parent().addClass('active');
while (true) {
if (element.is('li')) {
element = element.parent().addClass('in').parent().addClass('active');
}
else {
break;
}
}
});

最佳答案

尝试比较路径名

var element = $('ul#sidebarnav a').filter(function () {
return this.pathname == location.pathname;
}).addClass('active').parent().addClass('active');

例如在这个页面上 location.pathname 返回:

"/questions/48234042/set-selected-navigation-option-using-window-locaiton/48234196"

并且不包括 location.hashlocation.search

关于javascript - 使用 window.location 设置选定的导航选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com