永发信息网

js中关于给两层的li标签添加class的问题,求大神解答!

答案:2  悬赏:30  手机版
解决时间 2021-03-03 23:35
  • 提问者网友:你给我的爱
  • 2021-03-03 19:40
js中关于给两层的li标签添加class的问题,求大神解答!
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-03-03 20:35
$(function(){
$(".submenu").click(function(){
$(".active").removeClass("active");
$(".active2").removeClass("active2");
$(this).addClass("active");
});

$(".submenu>ul>li").click(function(){
$(".active").removeClass("active");
$(".active2").removeClass("active2");
$(this).parent().parent(".submenu").addClass("active");
$(this).addClass("active2");
});
});这里要给下级菜单再写一个active2的css样式

我测试了一下,不知道为什么,用一个样式不得行
这里用的是jquery的版本,如果你要原生js的版本再追问


而且我觉得这里还有一个问题,因为所有的2级菜单初始状态都是隐藏的,所以,只有在点击1级菜单才会展开,这时已经点击了1级菜单,1级菜单就应该有active样式了,这里好像只需要给2级菜单添加个点击事件再加个active样式就可以了。。。不需要再给他的1级菜单添加一次样式
追问第一个给父级li标签加样式没问题了,但是第二个有问题,一点击子级li标签,就所有的样式都消失了,不管是父级还是子级,主要是加载内容的时候可能有一次刷新,所有可能样式都没有了,这个问题怎么解决?还有active2是哪里来的?子级的也是active,求大神解答。
全部回答
  • 1楼网友:走死在岁月里
  • 2021-03-03 21:45
你应该是想实现风琴菜单或者类似效果的吧?推荐使用jquery(轻量级的js封装组件)很方便的实现了风琴菜单。一定要用js的话代码太长了我给你点思路。首先为元素绑定onclick事件,一级li和二级li区别对待。你没说清楚哪里不明白,我就猜一下你是不知道如何选中二级节点的父节点。选中当前节点的父节点的方法是this.parentNode就是当前节点的父节点了。你可以if this.onclick 那么this.parentNode.class就改为什么什么。你试试
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯