javascript - 怎么用jquery检查li的下级li是否存在class="active"?
问题描述
<ul class='nav sidebar-menu'> <li ><a href='https://www.haobala.com/admin/index'> <i class='menu-icon glyphicon glyphicon-home'></i> <span class='menu-text'> 后台首页 </span></a> </li> <li><a href='https://www.haobala.com/wenda/5191.html#' class='menu-dropdown'> <i class='menu-icon fa fa-inbox'></i> <span class='menu-text'> 产品 </span> <i class='menu-expand'></i></a><ul class='submenu'> <li ><a href='https://www.haobala.com/admin/product/lst'> <span class='menu-text'>产品列表</span></a> </li> <li ><a href='https://www.haobala.com/admin/size/lst'> <span class='menu-text'>码数管理</span></a> </li> <li ><a href='https://www.haobala.com/admin/cate/lst'> <span class='menu-text'>产品分类</span></a> </li></ul> </li> <li> //这个li下面的li里面存在active这个class,给这个li增加 <a href='https://www.haobala.com/wenda/5191.html#' class='menu-dropdown'> <i class='menu-icon fa fa-user'></i> <span class='menu-text'> 管理员 </span> <i class='menu-expand'></i></a><ul class='submenu'> <li ><a href='https://www.haobala.com/admin/user/lst'> <span class='menu-text'>管理员列表</span></a> </li> <li class='active'> //这个li里面包含了active这个class,我想给上级li增加一个class='open',应该怎么写才对?<a href='https://www.haobala.com/admin/authrule/lst'> <span class='menu-text'>权限列表</span></a> </li> <li ><a href='https://www.haobala.com/admin/authgroup/lst'> <span class='menu-text'>用户组</span></a> </li> </ul> </li> <li><a href='https://www.haobala.com/wenda/5191.html#' class='menu-dropdown'> <i class='menu-icon fa fa-gear'></i> <span class='menu-text'> 系统设置 </span> <i class='menu-expand'></i></a><ul class='submenu'> <li ><a href='https://www.haobala.com/admin/conf/lst'> <span class='menu-text'>配置列表</span></a> </li> <li ><a href='https://www.haobala.com/admin/conf/conf'> <span class='menu-text'>配置项</span></a> </li> </ul> </li></ul>
不知道怎么表述,所以把问题写在了上面的代码里,麻烦各位大大
问题解答
回答1:如果层级不深,可以使用 parents 来获取获取,如:
var $menu = $(’.sidebar-menu’);var $itemActive = $menu.find(’.active’); // 选中项var $itemActiveParent = $itemActive.parents(’li:first’); // 父级$itemActiveParent.addClass(’open’);回答2:
想做什么操作。。给你一些代码
$('.nav>li').each(function(index){$(this).find('.submenu>li').each(function(index1){ if($(this).hasClass('active')){console.log(index,index1); }}) })回答3:
如果你只是单纯的检查,可以
var $li = targetLi; // 你想判断的某个 liif ($li.find('>ul>li.active').length) { // li 的直接下级是 ul,所以它最近的一个下级 li 是 `>ul>li` // todo 这里是找到有 .active 的 li}
如果你只是想找到某个选中的 li 的所有父级
$('li.active').parents();
如果是父级中的 li
$('li.active').parents('li');
如果 active 不止一个,可以先通过 filter 或者加一个条件找到你需要的那一个。
相关文章:
1. css - .clearfix:after中为什么设置display: table2. mysql - 查询字段做了索引为什么不起效,还有查询一个月的时候数据都是全部出来的,如果分拆3次的话就没问题,为什么呢。3. javascript - js怎么判断input输入的值是数字,不小于等于0,不使用alert,而在同一行上用红色字体提示用户4. android - 哪位大神知道java后台的api接口的对象传到前端后输入日期报错,是什么情况?求大神指点5. 就一台服务器,mysql数据库想实现自动备份,如何设计?6. javascript - vue router-link to 里面为什么只能传固定的值7. DADB.class.php文件的代码怎么写8. javascript - 在js for in 循环中,使用数组的push方法获取对象的属性,结果却未改变数组9. 与远程浏览器通信时出错它可能已经死了Selenium Web驱动程序10. html - node.js中base标签中href的问题