用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 相关文章推荐
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
同时使用n个window onload加载实例介绍
Apr 25 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
Dec 13 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
Jun 14 Javascript
Vue概念及常见命令介绍(1)
Dec 08 Javascript
vue.js 上传图片实例代码
Jun 22 Javascript
webpack进阶——缓存与独立打包的用法
Aug 02 Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
JS实现的字符串数组去重功能小结
Jun 17 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
PHP安全上传图片的方法
2015/03/21 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP单链表的实现代码
2016/07/05 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
js实现tab切换效果
2017/02/16 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
python实现图片处理和特征提取详解
2017/11/13 Python
Python实现翻转数组功能示例
2018/01/12 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
会计找工作求职信范文
2013/12/09 职场文书
企业消防安全责任书
2014/07/23 职场文书
新年晚会开场白
2015/05/29 职场文书
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL