siblings获取不平级_siblings()是获取平级元素,哪不是平级应该怎么获取元素呢?...

该段代码实现了一个HTML页面的左侧导航菜单,包括展开/折叠子菜单及高亮选中当前项的功能。通过jQuery进行事件监听和DOM操作。在点击‘用户角色’时,‘产品检验项目设置’和‘追溯查询’没有清除样式,优化后的代码确保无论点击哪一层的li,都能清除其他所有‘menu_dropdown li’的样式。
摘要由CSDN通过智能技术生成

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<!-- <script type="text/javascript" src="//cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script> -->

<script type="text/javascript" src="jquery.min.js"></script>

</head>

<style>

*{

margin: 0;

padding:0;

}

a{

color:#000;

}

.asd-off{

background-color: yellow;

}

.asd-on{

background-color: lightgreen;

}

.chk-tap{

background-color: #e4393c;

}

.chk-j{

background-color: lightblue;

}

</style>

<body>

<div  class="aside-struct Hui-aside">

<ul class="menu_dropdown  bk_2">

<li ><a _href="showCodes.html" title="即时显码" href="javascript:void(0)">即时显码</a></li>

<li><a _href="TracesQuery.html" title="追溯查询" href="javascript:void(0)">追溯查询</a></li>

<li><a href="javascript:void(0)" _href="rawCode.html" title="生码管理">生码管理</a></li>

<li><a _href="autocode.html" title="自动扫码" href="javascript:void(0)">自动扫码</a></li>

<ol> <a _href="" title="仓库管理" href="javascript:void(0)" class="asd-off">仓库管理</a>

<ul style="display: none" class="asd-child">

<li class="chk-j"><a href="javascript:void(0)" _href="wmsMain.html" title="产品仓库">产品仓库</a></li>

<li><a href="javascript:void(0)" _href="wmsPassPut.html" title="出入库记录">出入库记录</a></li>

<li><a href="javascript:void(0)" _href="wmsFail.html" title="不合格产品">不合格产品</a></li>

</ul>

</ol>

<li><a _href="sysForTest.html" title="质检管理" href="javascript:void(0)" >质检管理</a></li>

<ol> <a _href="" title="经销商分销" href="javascript:void(0)" class="asd-off">经销商分销</a>

<ul  style="display: none" class="asd-child">

<li class="chk-j"><a href="javascript:void(0)" _href="retailStore.html" title="我的商品">我的商品</a></li>

<li><a href="javascript:void(0)" _href="salesRecord.html" title="分销记录">分销记录</a></li>

</ul>

</ol>

<ol> <a _href="" title="基础信息设置" href="javascript:void(0)" class="asd-off">基础信息设置</a>

<ul style="display: block" class="asd-child">

<li><a _href="unitSet.html" title="计量单位设置" href="javascript:void(0)" >计量单位设置</a></li>

<li><a _href="detectionPduSet.html" title="产品检验项目设置" href="javascript:void(0)" >产品检验项目设置</a></li>

<li><a _href="pduItem.html" title="产品信息" href="javascript:void(0)" >产品信息</a></li>

<li><a _href="company.html" title="企业信息" href="javascript:void(0)" >企业信息</a></li>

</ul>

</ol>

<ol> <a  title="权限管理" href="javascript:void(0)" class="asd-off">权限管理</a>

<ul style="display: block" class="asd-child" >

<li><a _href="roleMain-module.html" title="角色权限" href="javascript:void(0)" >角色权限</a></li>

<li><a _href="userRole-module.html" title="用户角色" href="javascript:void(0)" >用户角色</a></li>

<li><a _href="userMg-module.html" title="用户管理" href="javascript:void(0)" >用户管理</a></li>

<li><a _href="roleMg-module.html" title="角色管理" href="javascript:void(0)" >角色管理</a></li>

<li><a _href="auth-module.html" title="权限管理" href="javascript:void(0)" >权限管理</a></li>

</ul>

</ol>

<li><a _href="index12.html" title="关于我们" href="javascript:void(0)" >关于我们</a></li>

</ul>

</div>

</body>

<script>

/*左侧主导航*/

$('.asd-off').click(function(){

if($(this).siblings('ul').css('display')=='none'){

$(this).parent('li').siblings('li').removeClass('asd-on');

$(this).addClass('asd-on');

$(this).siblings('ul').slideDown(50).children('li');

if($(this).parents('li').siblings('li').children('ul').css('display')=='block'){

$(this).parents('li').siblings('li').children('ul')

.parent('li').children('a').removeClass('asd-on');

$(this).parents('li').siblings('li').children('ul').slideUp(50);

}

}else{

//控制自身变成+号

$(this).removeClass('asd-on');

//控制自身菜单下子菜单隐藏

$(this).siblings('ul').slideUp(50);

//控制自身子菜单变成+号

$(this).siblings('ul').children('li')

.children('ul').parent('li').children('a').addClass('asd-on');

//控制自身菜单下子菜单隐藏

$(this).siblings('ul').children('li').children('ul').slideUp(50);

//控制同级菜单只保持一个是展开的(-号显示)

$(this).siblings('ul').children('li').children('a').removeClass('asd-on');

}

});

$(".menu_dropdown li").on("click",function(){

$(this).addClass('chk-j').siblings().removeClass("chk-j");

})

</script>

</html>

$(".menu_dropdown li").on("click",function(){

$(this).addClass('chk-j').siblings().removeClass("chk-j");

})

**请问上面这段代码可以怎么改进?

这样做$(this).siblings()只能指向.menu_dropdown直接包裹的li而不能操作到.asd-child里的li将其样式删除**

比如说我点【用户角色】了【产品检验项目设置】和【追溯查询都没有清除样式】,需求就是不管是那一层的li点击了能够清除.menu_dropdown

li其他的样式。

$(".menu_dropdown>li").on("click",function(){

$(this).addClass('chk-j').siblings("li").removeClass("chk-j");

})

$(“.menu_dropdown>li”) 第一行加一个“>” 第二行siblings(“li”),

$(".menu_dropdown li").on("click", function () {

$(this).addClass('chk-j').siblings().find('li').removeClass("chk-j");

$(this).addClass('chk-j').closest('ol').siblings().removeClass('chk-j');

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值