js树状菜单
html部分
<ul class="tree">
<li><span><a href="#">JavaScript</a></span>
<ul>
<li><span><a href="#">JavaScript</a></span>
<ul>
<li><span><a href="#">JavaScript</a></span>
<ul>
<li><a class="active" href="#">AngularJS</a></li>
<li><a href="#">React</a></li>
<li><a href="#">Backbone</a></li>
</ul>
</li>
<li><a href="#">jQuery UI</a></li>
<li><a href="#">jQuery Mobile</a></li>
</ul>
</li>
<li><span><a href="#">JavaScript</a></span>
<ul>
<li><a class="active" href="#">AngularJS</a></li>
<li><a href="#">React</a></li>
<li><a href="#">Backbone</a></li>
</ul>
</li>
<li><span><a href="#">JavaScript</a></span>
<ul>
<li><a class="active" href="#">AngularJS</a></li>
<li><a href="#">React</a></li>
<li><a href="#">Backbone</a></li>
</ul>
</li>
</ul>
</li>
</ul>
css部分
*{list-style:none;border:none;}
body{font-family:Arial;background-color:#2C3E50;}
.tree { color:#46CFB0;width:800px;margin:100px auto;}
.tree li,
.tree li > a,
.tree li > span {
padding: 4pt;
border-radius: 4px;
} .tree li a {
color:#46CFB0;
text-decoration: none;
line-height: 20pt;
border-radius: 4px;
} .tree li a:hover {
background-color: #34BC9D;
color: #fff;
} .active {
background-color: #34495E;
color: white;
} .active a {
color: #fff;
} .tree li a.active:hover {
background-color: #34BC9D;
}
span:before{
content:'+';
display: inline-block;
margin-right: 4px;
}
.on:before{
content:'-';
}
js部分
var span=document.getElementsByTagName('span');
var li=[];
var s=[];
for(var i=0;i<span.length;i++){
li.push(span[i].parentNode); //获取父级元素li
}
for(var j=0;j<li.length;j++){
if(li[j].childNodes[2]){
s.push(li[j].childNodes[2]);//获取子元素第三个ul
}
}
for(var i=0;i<s.length;i++){//隐藏全部ul
s[i].style.display='none';
}
for(var i=0;i<span.length;i++){
span[i].index=i;
span[i].onclick=function(){//点击哪个显示哪个
if(s[this.index].style.display=='none'){
s[this.index].style.display='block';
this.className='on';
}else{
s[this.index].style.display='none';
this.className='';
} }
}
js树状菜单的更多相关文章
- js, 树状菜单隐藏显示
js写的不是很严谨~~~嘿嘿 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)
初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...
- 纯CSS打造可折叠树状菜单
1:Html代码 <li> <label for="subsubfolder1">下级</label> <input id="s ...
- 自写JQ控件-树状菜单控件[demo下载]
一个多月没有写博客了,最近也弄一个基于JQ的树状菜单控件,在此分享给大家.另外呢,通过这个例子分享一下怎么写JQ控件的. 事实上工作中,也是经常遇到的,有些时候自己想实现一些前端效果,用网上一些插件吧 ...
- 学用纯CSS打造可折叠树状菜单
随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习.但是历史告诉我们,好的东西必将盛行,CSS3也终将也会替代CSS2,下面就和大家分享一个 ...
- MVC身份验证.MVC过滤器.MVC6关键字Task,Async.前端模拟表单验证,提交.自定义匿名集合.Edge导出到Excel.BootstrapTree树状菜单的全选和反选.bootstrap可搜索可多选可全选下拉框
1.MVC身份验证. 有两种方式.一个是传统的所有控制器继承自定义Control,然后再里面用MVC的过滤器拦截.所以每次网站的后台被访问时.就会先走入拦截器.进行前端和后端的验证 一个是利用(MVC ...
- C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得
在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...
- JS树型菜单
本树型菜单主要实现功能有:基本的树型菜单,可勾选进行多选项操作. 本树型菜单适合最初级的学者学习,涉及内容不难,下面看代码. 首先看View的代码,第一个<div>用来定义树显示的位置和i ...
- 后台树状菜单,js实现递归无限分类
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...
随机推荐
- python进阶_浅谈面向对象进阶
python进阶_浅谈面向对象进阶 学了面向对象三大特性继承,多态,封装.今天我们看看面向对象的一些进阶内容,反射和一些类的内置函数. 一.isinstance和issubclass class F ...
- mysql 索引优化,不走索引的原因
1.WHERE字句的查询条件里有不等于号(WHERE column!=…),MYSQL将无法使用索引 2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=…) ...
- PHP中的符号 ->、=> 和 :: 的含义(用法)
php新手经常碰到的问题,->.=> 和 :: 这三个家伙是什么分别都是做什么的啊!看着就很晕. 没关系,下面我们做一下详细的解释,如果你有C++,Perl基础,你会发现这些家伙和他们里面 ...
- LOJ 6042 跳蚤王国的宰相
LOJ 6042 跳蚤王国的宰相 题意 跳蚤王国爆发了一场动乱,国王在镇压动乱的同时,需要在跳蚤国地方钦定一个人来做宰相. 由于当时形势的复杂性,很多跳蚤都并不想去做一个傀儡宰相,带着宰相的帽子,最后 ...
- springboot之jpa(简述)
1.maven引入jar包(jpa和mysql) <dependency> <groupId>org.springframework.boot</groupId> ...
- 用户测评 | EDAS Serverless 上手体验
背景 最初, 是因为对 Serverless 这一概念感兴趣, 所以开始试用阿里云函数计算,使用过程中感受到了函数计算快速.按需付费和弹性伸缩等方面的优势,随后我在天气预报.发送短信等场景下开始了更深 ...
- loj6046 「雅礼集训 2017 Day8」爷
https://loj.ac/problem/6046 最近遇到几个分块题,我发现我一遇到分块题就死活构造不出来 不对,明明是,遇到数据结构题,就死活构造不出来. 所以我就找了几个分块题做做. 其实分 ...
- ES6学习笔记之数组的扩展
✏️1. 扩展运算符 扩展运算符(spread)是三个点(...),将一个数组转为用逗号分隔的参数序列. 普通用法 console.log(...[1,2,3]);//1 2 3 数组拷贝(普通类型深 ...
- input输入框的input事件和change事件
input输入框的onchange事件,要在 input 失去焦点的时候才会触发: 在输入框内容变化的时候不会触发change,当鼠标在其他地方点一下才会触发: onchange 事件也可用于单选框与 ...
- cvc-elt.1: 找不到元素 'beans' 的声明。springmvc netbeans maven
搭建最基本的框架,出现问题,提示cvc-elt.1: 找不到元素 'beans' 的声明. HTTP Status 500 - Servlet.init() for servlet spring th ...