繁体   English   中英

如何基于当前URL添加类

[英]How to add class based on current url

var search_name = location.search;
    if (search_name.search("cate_no=24")  > 0) {
        $(".cate_new a").addClass("active");
    }
});

如果当前文档的URL是http://abc.com/list.html?cate_no=24 ,我想将类“ active”添加到li a中。

我搜索并找到了这些js代码,但无法正常工作。 这是错的吗?

不对 如果找到匹配项, search()返回匹配项的偏移位置;如果找不到匹配项,则返回-1

在检查cate_no=24是否包含cate_no=24 ,如果为true,它将返回0

当前,您的条件语句检查search()是否返回> 0 ,这不是您想要的。

您应该做的是检查它是否大于-1

if (search_name.search("cate_no=24") > -1) 

尽管 ,正如我在答案的第一个修订版中提到的那样,使用indexOf()会更好,更快search()应该在处理正则表达式时使用search() ,而不是用于简单的字符串搜索)。

if (search_name.indexOf("cate_no=24") > -1) 

search只会给您字符串。 这将是您的情况?cate_no=24

因此,我们将第一部分保持search_name ,并尝试在search_name以字符串形式找到所需的值。

var search_name = location.search;

这样我们就可以找到所需模式的索引。

if (search_name.indexOf("cate_no=24") > 0) {
    $(".cate_new a").addClass("active");
}

我的个人博客是静态的,因此我还必须弄清楚如何在没有PHP或其他服务器端代码的情况下执行此操作。

这部分代码获取了当前URL的路径,例如,如果您位于http://example.com/about ,它将返回字符串'/about/' 从那里编写一个简单的条件,将一个类添加到所选的链接。

var currentURL = window.location.pathname.toString();
console.log(currentURL);

if (currentURL = '/about/') { 
    $('a#about').addClass('active')
} else if (currentURL = '/work/') {
    ...
}

可以进一步开发该方法,以从具有特定类(例如.nav-items )的链接数组中获取href属性,并将活动类添加到href等于返回字符串的任何元素。

尝试这个

<li class="<?php if(isset($_REQUEST['cate_no']) && $_REQUEST['cate_no']=="24") { echo "active";}?>"></li>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM