javascript - 如果类(class)存在并且匹配位置,则将类(class)添加到父级和子级

标签 javascript jquery

我有一个带有子菜单的垂直切换菜单,如果我匹配位置,则尝试添加它们的类。在添加类(class)之前,应检查父级上是否有“事件”类(class)。

无论深度有多深,它都应该将“open”类添加到任何父级(li.active),如果匹配位置以保持菜单打开。

nav.main-cat
> li.active
>> a.nav-sub
>> ul.nav
>>> li.active
>>>> a.nav-sub

代码

$('.main-cat a').filter(function () {
    return this.href == url;
}).parent().find('.active').addClass('open').children().next('.nav').css('display','block');

我的问题是它只将类添加到最深的菜单中。

最佳答案

it should add to any parent (li.active)

我猜这个.parent().find('.active')可以替换为.parent('.active')

如果您想要所选a的所有父级,则需要调用.parents('.active')

最后,这个 .css('display','block') 绝对应该进入 CSS。

发布一个 fiddle ,以便我们可以更精确地查看。

关于javascript - 如果类(class)存在并且匹配位置,则将类(class)添加到父级和子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37556385/

相关文章:

javascript - Ember 如何从 Controller 上的 html5 视频标签捕获 Action 'ended'?

javascript - 为什么使用formValidation.js时需要指定字段的row属性?

jQuery AJAX 调用 Express (nodejs) 框架上的 Passportjs 登录

javascript - 不允许在 WebAPI 中发帖的方法

javascript - Bootstrap Javascript 无法在 Firefox 和 Safari IOS 中运行

javascript - JavaScript 中的简单 Observable 2 路数据绑定(bind)

javascript - 尝试使用表单重置()函数重置输入字段但不起作用

javascript - 当我在生产模式下将源代码与 webpack 捆绑时,如何避免丢失类名?

java - java变量的奇怪行为

jquery - 使用 jquery 将 html 表转换为字符串