jQuery在多级列表中添加和删除类
这是一个具有两个级别的列表菜单jQuery在多级列表中添加和删除类,jquery,html,list,multi-level,Jquery,Html,List,Multi Level,这是一个具有两个级别的列表菜单 <ul id="mylist"> <li class="lv1"><a class="privateMenuLinkJS">el1.1</a></li> <li class="lv1"><a>el1.2</a> <ul> <li class="lv2"><a class="privateMenuLinkJS"&g
<ul id="mylist">
<li class="lv1"><a class="privateMenuLinkJS">el1.1</a></li>
<li class="lv1"><a>el1.2</a>
<ul>
<li class="lv2"><a class="privateMenuLinkJS">el1.2.1</a></li>
<li class="lv2"><a class="privateMenuLinkJS">el1.2.2</a></li>
<li class="lv2"><a class="privateMenuLinkJS">el1.2.3</a></li>
</ul>
</li>
<li class="lv1"><a class="privateMenuLinkJS">el1.3</a></li>
</ul>
但它不适合我的需要
我试过parents,我试过每一个,但似乎每个都没有通过list元素循环
这是我迄今为止创建的代码
我知道算法可能会更好
你知道怎么做吗?我想你把它复杂化了。单击即可从所有
li
s中删除活动类,并应用于父级.lv1
例如:
(更新)尝试使用jQuery:
这将允许您按类遍历祖先(查找父母或祖父母)
以下代码将删除每个列表项的活动类,然后将活动类添加到最近的“lv1”列表项中
$('.lv1').removeClass("active");
$(this).closest('.lv1').addClass("active");
看看这把小提琴:嗨,穆布,我想我必须对代码做一点修改。如果我点击任何2级元素,它们都会变成红色。应该只有他们的祖父母李。他们都变红了,因为他们继承了父母的风格。也就是说,如果你说一个li
是绿色的,那么该li
的所有子项也将是绿色的。您应该确保ul
s已定义颜色。看。嗨,埃里克贝尔,我试过最接近,但如果我点击任何2级元素,它们都会变成红色。应该只有他们的祖父母李。
$('.lv1').removeClass("active");
$(this).closest('.lv1').addClass("active");