用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判断CSS文件加载完毕的具体实现
Jan 17 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
JS 动态判断PC和手机浏览器实现代码
Sep 21 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 Javascript
纯js实现动态时间显示
Sep 07 Javascript
React学习笔记之条件渲染(一)
Jul 02 Javascript
详解如何构建Promise队列实现异步函数顺序执行
Oct 23 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
Dec 04 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
javascript原型链学习记录之继承实现方式分析
May 01 Javascript
React冒泡和阻止冒泡的应用详解
Aug 18 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
python求斐波那契数列示例分享
2014/02/14 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python实现静态服务器
2019/09/05 Python
python和c语言哪个更适合初学者
2020/06/22 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
六十岁生日答谢词
2014/01/10 职场文书
旷课检讨书1000字
2014/02/14 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
家长会主持词开场白
2014/03/18 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
群众路线专项整治方案
2014/10/27 职场文书
红旗渠导游词
2015/02/09 职场文书
会计稽核岗位职责
2015/04/13 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers
volatile保证可见性及重排序方法
2022/08/05 Java/Android