Javascript 在主页上,我的整个导航都会高亮显示

Javascript 在主页上,我的整个导航都会高亮显示,javascript,jquery,html,Javascript,Jquery,Html,我正在使用这个代码 $(document).ready(function () { $(function () { $('li a[href^="../../' + location.pathname.split("/")[1] + '"]').addClass('active'); }); }); 突出显示我的导航,具体取决于我所在的页面 它工作正常,如果我在,它只会突出显示导航中的一个链接,例如http://test.com/content,但当我进入主页时http://te

我正在使用这个代码

$(document).ready(function () {
$(function () {
    $('li a[href^="../../' + location.pathname.split("/")[1] + '"]').addClass('active');
   });
});
突出显示我的导航,具体取决于我所在的页面

它工作正常,如果我在,它只会突出显示导航中的一个链接,例如
http://test.com/content
,但当我进入主页时http://test.com/它一次突出显示来自导航的所有li

试图在JSFIDLE中复制它。。。但不能因为它会将您重定向到其他页面或告诉您该页面不存在

我能做些什么吗?

用“ends with”操作符$=代替“starts with”怎么样^=

这样你就可以检查域名之后的所有内容。只需使用“if”排除仅包含域的路径名即可:

还可以查看以下两个帖子:


一个很好的解决方案可能是使用lis上的类而不是它们的HREF。您只需要1个onReady事件<代码>$(文档).ready(函数(){…})与
$(function(){…})相同所以删除一个或另一个事实上,你也可以使用你的示例,并用一个if来包围它,该if不包括案例位置。pathname直接指向你的域-以前没有考虑过这一点…嗯,有趣的想法。但是现在它甚至没有因为某种原因在任何地方添加类D:好的,我只是在我以前的代码中添加了一个$
$(document).ready(function () {
        if(location.pathname != "/") {
            $('li a[href$="' + location.pathname+ '"]').addClass('active');
        }
});