gpt4 book ai didi

javascript - jQuery 从 UL 层次结构中删除类,除了

转载 作者:数据小太阳 更新时间:2023-10-29 05:55:02 25 4
gpt4 key购买 nike

参见 fiddle :http://jsfiddle.net/3mpire/yTzGA/1/

使用 jQuery 如何从所有 LI 中删除“事件”类,除了离根最远(最深)的那个?

<div class="navpole">
<ul>
<li class="active"><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a>
<ul>
<li class="active"><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a>
<ul>
<li class="active"><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
</ul>
</li>
<li><a href="#">Lorem ipsum</a></li>
</ul>
</li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
</ul>
</div>

这是期望的结果:

<div class="navpole">
<ul>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a>
<ul>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a>
<ul>
<li class="active"><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
</ul>
</li>
<li><a href="#">Lorem ipsum</a></li>
</ul>
</li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
</ul>
</div>

最佳答案

按 parent 的数量对它们进行排序,并排除最后一个,因为无论标记如何,这将是嵌套最远的那个,并删除其余的类

$('.active').sort(function(a,b) {
return $(a).parents().length > $(b).parents().length;
}).not(':last').removeClass('active');

FIDDLE

要为每个导航杆执行此操作,只需将其包装在 each()

$('.navpole').each(function() {
$('.active', this).sort(function(a,b) {
return $(a).parents().length > $(b).parents().length;
}).not(':last').removeClass('active');
});

FIDDLE

关于javascript - jQuery 从 UL 层次结构中删除类,除了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21442330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com