jquery - 如何在所选元素上添加类并从其他元素中删除?
问题描述
这是我的 HTML:
<ul class="menu menu-primary">
<li class="current has-children">
<a href="">Home</a>
<span class="menu-item-toggle">
<span></span>
</span>
<ul class="sub-menu">
<li class="current-children"><a href="" class="">Homepage-1</a></li>
<li class=""><a href="" class="">Home-2</a></li>
<li class=""><a href="" class="">Home-3</a></li>
</ul>
</li>
</ul>
现在我想要的是点击“menu-item-toggle”,“menu-expand”被添加到相应的“li.has-children”并从其他li中删除。
这是我的脚本:
$('ul.menu li.has-children').each(function () {
var menuItem = $(this)
var menuToggle = $('<span class="menu-item-toggle"><span></span></span>')
menuToggle.insertAfter(menuItem.find('> a')).on('click', function () {
menuItem.toggleClass('menu-expand');
menuItem.nextAll().removeClass('menu-expand');
menuItem.prevAll().removeClass('menu-expand');
})
})
解决方案
尝试这个
$('ul.menu li.has-children').click(function () {
$('ul.menu li.has-children').each(function () {
$(this).removeClass('menu-expand');
});
$(this).addClass('menu-expand');
});
推荐阅读
- x86 - 操作系统如何确保一个进程无法访问 x86 架构中全局描述符表中另一个进程的基本限制?
- python - 当用户标记某人时如何发送成员名称
- c# - 在stimulsoft中每页打印每条记录
- flutter - 如何在 Flutter pdf 中附加资产图像 (jpg/png):^3.6.0 包
- html - HTML Sending 在获取请求中发送不同的语言字符
- java - EventHub 检查点管理器未更新 Azure Blob
- macos - 错误:同上:不支持操作和同上:未知压缩类型
- python - 指定颜色参数后,绘图平行图给出错误的分类
- sql - 如何根据 tsql 中的条件过滤重复行?
- recursion - 雪花,递归 CTE,获取错误字符串 'AAAA_50>BBBB_47>CCCC_92' 太长,将在 'CONCAT' 中截断