如下代码,ul下有li标签,li标签下包着ul标签,下面还有一层li标签。有两层的li标签,点击第一层li标签,会给点击的li标签加上class=“submenu open”的样式(展开列表,没点击之前是class=“submenu”),主要是第二层的li标签点击以后,本身会加上class=“active” ,同时给自己的上一级li标签加上class=“submenu active open” 的样式,请问如何实现?
<div id="sidebar">
<a href="#" class="visible-phone"><i class="icon icon-home"></i> 主页</a>
<ul id="jj">
<li ><a href="index.html"><i class="icon icon-home"></i> <span>主页</span></a></li>
<li class="submenu active open">
<a href="#"><i class="icon icon-th-list"></i> <span></span> <span class="label">8</span></a>
<ul>
<li class="active"><a href="#">1</a></li>
<li ><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="{#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
</ul>
</li>
<li class="submenu">
<a href="buttons.html"><i class="icon icon-tint"></i> <span>溪口旅游</span> <span class="label">6</span></a>
<ul>
<li ><a href="#">1</a></li>
<li ><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
</ul>
</li>
</ul>
</div>
这里要给下级菜单再写一个active2的css样式
我测试了一下,不知道为什么,用一个样式不得行
这里用的是jquery的版本,如果你要原生js的版本再追问
而且我觉得这里还有一个问题,因为所有的2级菜单初始状态都是隐藏的,所以,只有在点击1级菜单才会展开,这时已经点击了1级菜单,1级菜单就应该有active样式了,这里好像只需要给2级菜单添加个点击事件再加个active样式就可以了。。。不需要再给他的1级菜单添加一次样式
追问第一个给父级li标签加样式没问题了,但是第二个有问题,一点击子级li标签,就所有的样式都消失了,不管是父级还是子级,主要是加载内容的时候可能有一次刷新,所有可能样式都没有了,这个问题怎么解决?还有active2是哪里来的?子级的也是active,求大神解答。
本回答被网友采纳js中关于给两层的li标签添加class的问题,求大神解答!
首先为元素绑定onclick事件,一级li和二级li区别对待。你没说清楚哪里不明白,我就猜一下你是不知道如何选中二级节点的父节点。选中当前节点的父节点的方法是this.parentNode就是当前节点的父节点了。你可以if this.onclick 那么this.parentNode.class就改为什么什么。你试试 ...
通过js遍历ul下的li,在给li赋上CLASS!急,有会的帮下忙吧!
<script type="text\/javascript"> var u = document.getElementById("about");var n = document.getElementsByTagName("li");n[0].className = "ubNav";<\/script>
js给循环中的li添加class="active"
1、首先在html中布局好两个按钮和一个div,如下图所示。2、接着编写添加class的方法,如下图所示,通过classList中的add。3、运行页面以后看到如下图所示的界面。4、点击添加class按钮就可以看到div中多了样式。5、接下来在编写移除class样式即可。
如何通过js在li的奇偶或单双标签中增加class?
<style>ul li:nth-of-type(odd){奇数行样式} ul li:nth-of-type(even){偶数行样式}<style> 如果我说服不了你,一定要js的话,那么继续: <script id="jquery_182" type="text\/javascript" class="library" src="\/js\/sandbox\/jquery\/jquery-1.8.2.min.js"><\/script><meta charset=...
...<li>标签,不用获取id的方法。两层<li>标签的class是一样的。_百度...
如果你只需要获取最里层的第一个 li 的话,可以用document.querySelector(".on > ul >.on")如果还想获取最里层的所有 li 的话 ,可以用document.querySelectorAll(".on > ul >.on"),最好是给每个ul 加个类名,选择子元素的时候,就不用写那么多层了。
jq:求助!!\/\/当鼠标点击li给li赋予一个class,当鼠标点击另一个li的时 ...
(function(){ ("#Tab ul > li").click(function(){ (this).addClass("current").siblings().removeClass("current");})}) \/\/给Li一个点击事件,给当前点击的li一个class然后去掉同辈li的class,就这么简单
如何用vue.js给点过的li添加单独的class
一组li,这个li不是v-for出来的。是直接写死的。为什么不用v-for,li里面的结构不一样,给所有的li添加点击事件 tanchu(),给点击的当前li添加一个class;现在点击之后所有的都会添加这个class;Vue.js(读音 \/vjuː\/, 类似于view)是一套构建用户界面的渐进式框架。与其他重量级框架不同的...
如何在js中循环赋值给页面上的li附上标签?
调用:addElementLi("parentUl");用 js 动态添加元素,就不会有那么复杂的字符串出现,代码阅读性强一点,也容易理解。用代码的方式在js中给li附上标签。一、js 动态添加元素div:<div id="parent"><\/div> function addElementDiv(obj) {var parent = document.getElementById(obj); \/\/添加 div...
如何给动态给导航菜单中的li标记引用class
js实现的,你将这段放入进去试试(放到ul前后都行) 我然后鼠标移到菜单上看看,<style type="text\/css"> .red{background:red;} <\/style> <script type="text\/javascript" > window.onload = function (){ document.getElementById("menu").onmouseover = function (){ this.className="red";...
jquery怎么在点击li标签之后添加一个在class,点击下一个li时删除上一...
思路:点击当前li元素后是用removeClass()删除所有兄弟元素(使用siblings()获取)的class样式,然后使用addClass()为当前li添加class。具体演示如下:1、HTML结构:设计三个li元素 <ul id="test"> <li>Glen<\/li> <li>Tane<\/li> <li>John<\/li> <\/ul> 2、css样式:设计一个类selected,表示...