用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 相关文章推荐
IE和FireFox(FF)中js和css的不同
Apr 13 Javascript
js加强的经典分页实例
Mar 15 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 Javascript
JS排序之快速排序详解
Apr 08 Javascript
详解webpack进阶之loader篇
Aug 23 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 Javascript
vue.js内置组件之keep-alive组件使用
Jul 10 Javascript
layui radio性别单选框赋值方法
Aug 15 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
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
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
json数据的列循环示例
2013/09/06 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
Python写的贪吃蛇游戏例子
2014/06/16 Python
pycharm安装图文教程
2017/05/02 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
Pandas之缺失数据的实现
2021/01/06 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
项目建议书范文
2014/05/12 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
病房管理制度范本
2015/08/06 职场文书
python实现简单的井字棋
2021/05/26 Python