用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入门基础 document.write输出
Feb 22 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
jquery.idTabs 选项卡使用示例代码
Sep 03 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
Jul 12 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
Apr 04 Javascript
vue实现Excel文件的上传与下载功能的两种方式
Jun 28 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
Jan 08 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如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
动态加载jquery库的方法
2014/02/12 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
Python urllib2运行过程原理解析
2020/06/04 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
兴趣小组活动总结
2014/05/05 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
教师三严三实心得体会
2014/10/11 职场文书
论群众路线学习笔记
2014/11/06 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
护士辞职信怎么写
2015/02/27 职场文书
《刷子李》教学反思
2016/02/20 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang