用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 相关文章推荐
jQuery 联动日历实现代码
May 31 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
Apr 08 Javascript
浅析webapp框架AngularUI的demo
Dec 21 Javascript
php利用curl获取远程图片实现方法
Oct 26 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
AngularJS控制器继承自另一控制器
May 09 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
利用Angular2的Observables实现交互控制的方法
Dec 27 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
Jun 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
PHP中,文件上传
2006/12/06 PHP
php 字符串函数收集
2010/03/29 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
php随机显示图片的简单示例
2014/02/15 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
JS 常用校验函数
2009/03/26 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
物流合作计划书
2014/01/10 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
2015元旦标语横幅
2014/12/09 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android