[英]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.