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树状菜单的更多相关文章

  1. js, 树状菜单隐藏显示

    js写的不是很严谨~~~嘿嘿   <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  2. 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)

    初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...

  3. 纯CSS打造可折叠树状菜单

    1:Html代码 <li> <label for="subsubfolder1">下级</label> <input id="s ...

  4. 自写JQ控件-树状菜单控件[demo下载]

    一个多月没有写博客了,最近也弄一个基于JQ的树状菜单控件,在此分享给大家.另外呢,通过这个例子分享一下怎么写JQ控件的. 事实上工作中,也是经常遇到的,有些时候自己想实现一些前端效果,用网上一些插件吧 ...

  5. 学用纯CSS打造可折叠树状菜单

    随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习.但是历史告诉我们,好的东西必将盛行,CSS3也终将也会替代CSS2,下面就和大家分享一个 ...

  6. MVC身份验证.MVC过滤器.MVC6关键字Task,Async.前端模拟表单验证,提交.自定义匿名集合.Edge导出到Excel.BootstrapTree树状菜单的全选和反选.bootstrap可搜索可多选可全选下拉框

    1.MVC身份验证. 有两种方式.一个是传统的所有控制器继承自定义Control,然后再里面用MVC的过滤器拦截.所以每次网站的后台被访问时.就会先走入拦截器.进行前端和后端的验证 一个是利用(MVC ...

  7. C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得

    在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...

  8. JS树型菜单

    本树型菜单主要实现功能有:基本的树型菜单,可勾选进行多选项操作. 本树型菜单适合最初级的学者学习,涉及内容不难,下面看代码. 首先看View的代码,第一个<div>用来定义树显示的位置和i ...

  9. 后台树状菜单,js实现递归无限分类

    //新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...

随机推荐

  1. (转载)JavaScript世界万物诞生记

    一. 无中生有 起初,什么都没有.造物主说:没有东西本身也是一种东西啊,于是就有了null: 现在我们要造点儿东西出来.但是没有原料怎么办?有一个声音说:不是有null嘛?另一个声音说:可是null代 ...

  2. 再谈MFC学习——模态对话框的数据传递

    学习c++的目的就是为了使用封装好的类.而最最经典的封装类当然是微软的MFC窗体程序类. 学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想. 以下就看下我学习的MFC模态对话框的数据 ...

  3. Maven中央仓库地址大全,Maven中央仓库配置示例

    < Maven 中央仓库地址大全 > 在上一篇文章中完成了 < Maven镜像地址大全 >,后来又花了时间又去收集并整理了关于 maven 远程仓库地址,并整理于此,关于 Ma ...

  4. C#——找出实现某个接口的所有类 - Hello World - CSDN博客

    原文:C#--找出实现某个接口的所有类 - Hello World - CSDN博客 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u0125260 ...

  5. python-web-webbrower-beautifuSoup

    webbrowser:是 Python 自带的,打开浏览器获取指定页面. requests:从因特网上下载文件和网页. Beautiful Soup:解析 HTML,即网页编写的格式. seleniu ...

  6. 卸载VS2015之后,安装VS2017出错

    安装出现问题. 可通过以下方式排查包故障问题: 1. 使用以下搜索 URL 来搜索针对每个包故障的解决方案 2. 针对受与影响的工作负荷或组件修改选项,然后重新尝试安装 3. 从计算机上删除产品,然后 ...

  7. 更好用的集群限流功能,Sentinel 发布 v1.4.2

    摘要: 感谢 Sentinel 社区的贡献者们 ️ Sentinel 发布 v1.4.2 正式发布,该版本主要变更如下: 特性/功能改进 新增 Zuul 1.x 适配模块(sentinel-zuul- ...

  8. SSM2-搭建maven常见的错误以及解决方法

    1.项目中的jdk版本电脑自带的jdk版本不一致 mavne-parent 的pom.xml文件 <!-- java编译插件 --> <plugin> <groupId& ...

  9. HDU3486 RMQ

    /*多么变态的一道题,交了18次*/ #include<cstdio> #include<cstring> #include<cmath> #define max( ...

  10. 在Deepin Linux折腾python pip

    首先通过wget命令下载get-pip.py 地址在https://bootstrap.pypa.io/get-pip.py $ wget https://bootstrap.pypa.io/get- ...