Javascript jQuery脚本不会添加活动类
我得到了这个jQuery脚本,它应该将类“active”添加到我的li中,但它没有。脚本如下:Javascript jQuery脚本不会添加活动类,javascript,jquery,navigation,Javascript,Jquery,Navigation,我得到了这个jQuery脚本,它应该将类“active”添加到我的li中,但它没有。脚本如下: jQuery(function() { var pgurl = jQuery(location).attr('href'); console.log(pgurl); jQuery("ul.pagesubmenu-ul li a").each(function(){ if(jQuery(this).attr("href") == pgurl) jQuery(this).pa
jQuery(function() {
var pgurl = jQuery(location).attr('href');
console.log(pgurl);
jQuery("ul.pagesubmenu-ul li a").each(function(){
if(jQuery(this).attr("href") == pgurl)
jQuery(this).parent().addClass("active");
})
}))
我真的不知道为什么它不起作用。我正在尝试使用它(在主导航下面的子导航中)
提前谢谢 您可以通过jquery的href属性直接选择它,而不是循环所有链接:
$(function() {
$("a[href='" + location.href + "']").parent().addClass('active');
});
请注意,如果您在站点中使用相对url,则location.href
将返回包含主机和方案的完整url:
$(function() {
$("a[href='" + location.pathname + "']").parent().addClass('active');
});
此外,您还可以使用一些字符作为通配符:
= is exactly equal
!= not equal
^= starts with
$= ends with
*= contains
~= contains word
|= starts with prefix
在这些链接中没有一个精确匹配<代码>pgurl正在显示
http://xn--fnpark-pua9l.dk/konference-ny/
,但是为什么不工作?你能用你的导航结构做一个JSFIDLE吗
HTML
-
JQUERY
jQuery(函数(){
$(“ul.page li ul.subpage li a”)。每个(函数(){
$(this.addClass('active');
});
});代码>
如果您确定href
属性的url与位置
对象类似,通常href标记不包含域名(用于相对路径),请首先检查是否将执行if条件。检查debug或add alert to if条件,确保代码jQuery(this.parent().addClass(“active”);这里的正则表达式不合法吗?URL可能包含搜索路径(/link?q=test)。无论如何,你已经得到了我的+1,谢谢!我想正则表达式也可以,但这不是我的强项:)@taxicala-谢谢你的回复!我刚刚尝试使用您的脚本,但出现了一个错误:无法识别的表达式:a[href=对不起,我忘记了一些引语,我已经更新了我的答案。@taxicala-非常感谢!它像一个符咒一样工作!我将使用这个而不是我自己的脚本:)这很有意义!非常感谢你的回复!我将把这个标记为正确的,因为这是它不起作用的原因:)我很高兴我能提供帮助。我建议你检查一下还有一些其他答案。从长远来看,提到的方法可能会使您的代码更具可读性。我将使用taxicala建议的方法。比我自己的代码更干净、更好!:)