用JavaScript实现一个代码简洁、逻辑不复杂的多级树


Posted in Javascript onMay 23, 2014

在网上找个很多的树实现,总感觉不尽如意,不是需要引用JS外部文件使用插件,就是代码过多让人看的眼花,实际上我只是想实现一个代码简洁、逻辑不复杂的树,费话不多说直接上代码:

1,首先写CSS样式,这个必需要写的头部最先渲染

<style> 
.ps{margin-left:10px;display:none;} .f { 
background: url("add.gif") no-repeat scroll -4px -21px; 
cursor: pointer; 
height: 35px; 
line-height: 37px; 
padding-left: 20px; 
} 
</style>

2,在页面主体中添加树的具体内容,此内容也可以动态展示(动态展示只要针对规则就很好实现了,这就不用说了吧偷笑)
<div class="f" id="sgc1">密码修改</div> 
<div class="f" id="sgc2">商品选择</div> 
<div class="f" id="sgc3" onclick="w('gc3')">分类设置</div> 
<div class="ps" id="gc3" style="display:none"> 
<div id="sfgc91" class="f" onclick="k('fgc91')">Must See</div> 
<div class="ps" id="fgc91"> 
<div class="f">设置MustSee商品</div> 
</div> 
<div id="sfgc93" class="f" onclick="k('fgc93')">Spotlight</div> 
<div class="ps" id="fgc93"> 
<div class="f">设置Spotlight商品</div> 
</div> 
<div id="sfgc94" class="f" onclick="k('fgc94')">Daily Specials</div> 
<div class="ps" id="fgc94"> 
<div class="f">设置DailySpecials商品</div> 
</div> 
<div id="sfgc95" class="f" onclick="k('fgc95')">HotCategory</div> 
<div class="ps" id="fgc95"> 
<div class="f">设置HotCategory分类</div> 
<div class="f">设置HotCategory商品</div> 
</div> 
<div id="sfgc96" class="f" onclick="k('fgc96')">Hot & Cool Picks</div> 
<div class="ps" id="fgc96"> 
<div class="f">设置Hot & Cool Picks商品</div> 
</div> 
<div id="sfgc97" class="f" onclick="k('fgc97')">FeaturedCategorie</div> 
<div class="ps" id="fgc97"> 
<div class="f">设置FeaturedCategorie分类</div> 
<div class="f">设置FeaturedCategorie商品</div> 
</div> 
<div id="sfgc98" class="f" onclick="k('fgc98')">You Might Also Like…</div> 
<div class="ps" id="fgc98"> 
<div class="f">设置You Might Also Like…分类</div> 
<div class="f">设置You Might Also Like…商品</div> 
</div> 
</div> 
<div class="f" id="sgc4" onclick="w('gc4')">系统设置</div> 
<div class="ps" id="gc4" style="display:none"> 
<div class="f">用户管理</div> 
</div>

3,重头戏来了,同鞋注意了,接下来实现JS的树形控制
function w(vd) { 
var ob = document.getElementById(vd); 
if (ob.style.display == "block" || ob.style.display == "") { 
ob.style.display = "none"; 
var ob2 = document.getElementById('s' + vd); 
ob2.style.background = "url(add.gif) -4px -21px no-repeat"; 
} 
else { 
ob.style.display = "block"; 
var ob2 = document.getElementById('s' + vd); 
ob2.style.background = "url(add.gif) -4px 4px no-repeat;"; 
} 
} 
function k(vd) { 
var ob = document.getElementById(vd); 
if (ob.style.display == "block") { 
ob.style.display = "none"; 
var ob2 = document.getElementById('s' + vd); 
ob2.style.background = "url(add.gif) -4px -21px no-repeat"; 
} 
else { 
ob.style.display = "block"; 
var ob2 = document.getElementById('s' + vd); 
ob2.style.background = "url(add.gif) -4px 4px no-repeat;"; 
} 
}

4,运行实例图如下:
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
Javascript 相关文章推荐
javascript showModalDialog,open取得父窗口的方法
Mar 10 Javascript
JQuery1.6 使用方法三
Nov 23 Javascript
jQuery之过滤元素操作小结
Nov 30 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
AngularJs中route的使用方法和配置
Feb 04 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
微信小程序 wx.request方法的异步封装实例详解
May 18 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 Javascript
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
JavaScript canvas实现跟随鼠标移动小球
Feb 09 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 #Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 #Javascript
jquery重复提交请求的原因浅析
May 23 #Javascript
jquery仿搜索自动联想功能代码
May 23 #Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 #Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
May 23 #Javascript
jQuery 获取兄弟元素的几种不错方法
May 23 #Javascript
You might like
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
php实现文章评论系统
2019/02/18 PHP
jquery实用代码片段集合
2010/08/12 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python3.0 字典key排序
2008/12/24 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python上下文管理器全实例详解
2019/11/12 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
中级会计职业生涯规划范文
2014/01/16 职场文书
产品设计开发计划书
2014/05/07 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
盲山观后感
2015/06/11 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
MySQL分区路径子分区再分区
2022/04/13 MySQL