用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编程起步(第二课)
Feb 27 Javascript
再谈ie和firefox下的document.all属性
Oct 21 Javascript
jQuery bind事件使用详解
May 05 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
Visual Studio中js调试的方法图解
Jun 30 Javascript
详解AngularJS中自定义指令的使用
Jun 17 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
Oct 16 Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
详解JavaScript实现动态的轮播图效果
Apr 29 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
linux下实现定时执行php脚本
2015/02/13 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
幼儿园中秋节活动方案2013
2014/01/29 职场文书
航空学院求职信
2014/06/11 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
批评与自我批评总结
2014/10/17 职场文书
教师求职简历自我评价
2015/03/10 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android