用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 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
js取得url地址参数实例
Feb 22 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
js弹出层永远居中实现思路及代码
Nov 29 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 Javascript
基于JavaScript实现简单的音频播放功能
Jan 07 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
layui 优化button按钮和弹出框的方法
Aug 15 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
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
详解微信UnionID作用
2019/05/15 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
vue实现计步器功能
2019/11/01 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
Python中__call__用法实例
2014/08/29 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
21岁生日感言
2014/02/27 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
辞职信怎么写?
2019/05/21 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Python实现拼音转换
2021/06/07 Python
用Java实现简单计算器功能
2021/07/21 Java/Android
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers