使用jQuery将活动类添加到列表内的锚点

时间:2018-12-25 17:25:58

标签: jquery html

我正在使用AdminLTE v3,并且无法使用jquery向菜单项添加活动状态。我进行了搜索,但只有v2的示例,锚点是具有活动类的锚点,而不是列表项。

var url = window.location;

// for sidebar menu entirely but not cover treeview
$('ul.nav-sidebar a > i').filter(function () {
    return this.href == url;
}).parent().siblings().removeClass('active').end().addClass('active');

// for treeview
$('ul.nav-treeview a').filter(function () {
    return this.href == url;
}).parentsUntil(".nav-sidebar > .has-treeview").siblings().removeClass('active').end().addClass('active')

这是AdminLTE v2中使用的jQuery,我只是根据v3中的类名称更改了

$('ul.nav-sidebar a').filter(function () {
    return this.href == url;
}).addClass('active');

编辑

var c = $('.nav li a').each(function () {
   return this.href == url;
}).addClass('active');

这个似乎正在为导航树视图中的锚点工作。无法访问第二个列表项中的锚点。

有了这个,我可以将所有锚设置为活动状态

{{1}}

1 个答案:

答案 0 :(得分:0)

是!!!我终于弄清楚了父级兄弟姐妹在jquery中是如何工作的!

这是最终结果,如果有人遇到同样的问题并且是jquery的新手。调试器也是您最好的朋友。

$(document).ready(function () {
var url = window.location;

// Adds active on inner anchor and treeview anchor and treeview menu-open state to li
$('ul.nav a').filter(function () {        
    return this.href == url;
}).addClass('active').parent().parent().siblings().addClass('active').parent().addClass('menu-open');

});