PHP写json文件的树形菜单,树形菜单(无级树)json数据
.menuTree{ margin-left:-30px;}
.menuTree div{ padding-left:30px;}
.menuTree div ul{ overflow:hidden; /*height:0;*/ display:none; height:auto;}
.menuTree span{ display:block; height:25px; line-height:25px; padding-left:5px; /*width:100px;*/ margin:1px 0; cursor:pointer; border-bottom:1px solid #CCC;}
.menuTree span:hover{ background-color:#e6e6e6; color:#cf0404;}
.menuTree a{ color:#333; text-decoration:none;}
.menuTree a:hover{ color:#06F;}
.btn{ height:30px; margin-top:10px; border-bottom:1px solid #CCC;}
var json = [{"name":"*a","list":[
{"name":"**a","url":"#a1"},
{"name":"**aa","list":[
{"name":"***a","url":"#a11"},
{"name":"***aa","list":[
{"name":"****a","url":"#a111"},
{"name":"****aa","list":[
{"name":"*****a","url":"#a1111"},
{"name":"*****aa","url":"#a1112"}
]}
]},
{"name":"***aaa","url":"#a13"},
{"name":"***aaaa","url":"#a14"}
]
},
{"name":"**a","url":"#a3"}
]
},
{"name":"*b","list":[
{"name":"**b","url":"#b1"},
{"name":"**bb","list":[
{"name":"****b","url":"#b111"},
{"name":"****bb","url":"#b112"}
]
},
]
},
{"name":"*c","list":[
{"name":"**c","url":"#c1"},
{"name":"**cc","url":"#c2"}
]
},
{"name":"*d"}
]
/*递归实现获取无级树数据并生成DOM结构*/
var str = "";
var forTree = function(o){
for(var i=0;i
var urlstr = "";
try{
if(typeof o[i]["url"] == "undefined"){
urlstr = "
- ";
}else{
urlstr = "
- ";
}
str += urlstr;
if(o[i]["list"] != null){
forTree(o[i]["list"]);
}
str += "
";
}catch(e){}
}
return str;
}
/*给舞台容器元素添加无级树*/
document.getElementById("menuTree").innerHTML = forTree(json);
/*树形菜单效果实现*/
var menuTree = function(){
//给有子对象的元素加[+-]
$("#menuTree ul").each(function(index, element) {
var ulContent = $(element).html();
var spanContent = $(element).siblings("span").html();
if(ulContent){
$(element).siblings("span").html("[+] " + spanContent)
}
});
$("#menuTree").find("div span").click(function(){
var ul = $(this).siblings("ul");
var spanStr = $(this).html();
var spanContent = spanStr.substr(3,spanStr.length);
if(ul.find("div").html() != null){
if(ul.css("display") == "none"){
ul.show(300);
$(this).html("[-] " + spanContent);
}else{
ul.hide(300);
$(this).html("[+] " + spanContent);
}
}
})
}()
/*全部展开*/
$("#btn_open").click(function(){
$("#menuTree ul").show(300);
curzt("-");
})
/*全部收缩*/
$("#btn_close").click(function(){
$("#menuTree ul").hide(300);
curzt("+");
})
function curzt(v){
$("#menuTree span").each(function(index, element) {
var ul = $(this).siblings("ul");
var spanStr = $(this).html();
var spanContent = spanStr.substr(3,spanStr.length);
if(ul.find("div").html() != null){
$(this).html("["+ v +"] " + spanContent);
}
});
}
运行代码
复制代码
另存代码
提示:您可以先修改部分代码再运行
PHP写json文件的树形菜单,树形菜单(无级树)json数据相关推荐
- 图形化开发(六)01-Three.js之导入模型——3dmax和SketchUp-editor编辑器导出json文件,在创建模型initMesh中外部的JSON文件
图形化开发(六)01-Three.js之导入模型--3dmax和SketchUp-editor编辑器导出json文件,在创建模型initMesh中外部的JSON文件 导入模型 官方推荐我们使用的3D模 ...
- flex bison解析json文件_每秒解析千兆字节的 JSON 解析器开源了
本文转自我们的网站 InfoQ,译者无明.除了推荐 simdjson 之外,还想测试一下微信平台编辑器的代码样式功能. 事实证明,微信文章的代码展示能力很强了.非常棒. 近日,GitHub 开源了一 ...
- FLIR数据集json文件转yolo格式txt (PS.coco数据集json文件转yolo格式txt)
最近使用FLIR开源红外数据集和yolo做训练,但是标签文件只有一个json文件,需要转为yolo需要的标签格式 ,代码如下: from __future__ import print_functio ...
- vs code c语言json文件配置,解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)...
前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...
- python post 请求json文件_requests的post请求提交表单、json串和文件数据讲解
HTTP协议中没有规定post提交的数据必须使用什么编码方式,服务端根据请求头中的Content-Type字段来获取编码方式,再对数据进行解析.具体的编码方式包括如下: - application/x ...
- Unity的Json解析二–写Json文件
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50378805 作者:car ...
- 手写小程序摇树优化工具(三)——遍历json文件
见素包朴,少私寡欲,绝学无忧 github: miniapp-shaking 上一章我们介绍了遍历js文件的方法,接下来我们介绍其他文件的遍历. 1. 遍历JSON文件 对于json文件,我们直接读取 ...
- npm 包与模块关系 下载使用包 init命令 package.json文件 node_modules文件夹 全局安装包和本地安装包 开发依赖和生产依赖
npm 了解npm npm 全称Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题. npm 不需要单独安装.在安装Node的时候,会连 ...
- 【Python爬虫学习笔记6】JSON文件存储
JSON简介 JSON(全称JavaScript Obejct Notation,JavaScript对象标记),基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言 ...
- netcore读取json文件_.Net Core如何读取Json配置文件
前言:在与传统的asp.net MVC项目相比,.net core项目在项目目录的文件结构上和功能上与前者都有很大的区别.例如:在.net core中使用Startup.cs取代Global.asax ...
最新文章
- POW矿池挖空块原理和解决方案
- Java单元测试-快速上手Junit
- LMDB中的mmap、Copy On Write、MVCC深入理解——讲得非常好,常来看看!
- 《Elasticsearch in Action》书评与作者访谈
- opencv4版本和3版本_世界名曲鸽子最好听的3个版本,美醉了!
- 使用LitJson进行序列化和反序列化
- Linux命令工作中常用的总结
- php crypt mysql password_php使用crypt()函数进行加密
- 使用百度链的智能合约来落地公司业务场景
- 无法装载文件或者汇编的AjaxControlToolkit
- [转载] 使用Python+OpenCV实现在视频中某对象后添加图像
- iOS在应用中添加自定义字体
- FP-XH 松下PLC控制器资料下载
- python白盒测试_白盒测试 - zp_Alex - 博客园
- 攻防世界--logmein
- 三菱FX系列PLC辅助继电器(M)
- 捋一捋dubbo配置
- php打印机,用PHP打印到打印机
- 2、Canal的deployer模块
- Tone Mapping Correction
热门文章
- Unable to add window android.view.ViewRootImpl$W@c1bf05d -- permission denied for window type 2003
- Spring boot 集成 Kaptcha 实现前后端分离验证码功能
- 【独立站运营】什么是营销转化率?如何提升转化率?
- 研究开源的C++的RTB广告系统,通过centos7镜像,解决各种环境问题,使用boost库
- 服务器vga接显示器无信号,显示器用HDMI转VGA接口后,无信号怎么解决
- python+selenium+request实行全自动12306抢票和购票
- “Entity Data Modle Designer 无法显示”的问题
- 【c++】c++基础入门
- NVIDIA Jetson TK1学习与开发(一):NVIDIA Jetson TK1介绍
- linux 加速度传感器数据获取,对加速度传感器的数据进行方向和坐标的转换