Javascript如何实现无限级菜单联动实例
来源:互联网 发布:php项目开发常用方法 编辑:程序博客网 时间:2024/06/05 14:15
<!DOCTYPE HTML><html> <head> <meta charset="utf-8" /> <title>示例4</title> <script> var data=[ {"id":10,"name":'男装', "sub":[{"id":101,"name":'正装'}, {"id":102,"name":'T恤'}, {"id":103,"name":'裤衩'} ] }, {"id":20,"name":'女装', "sub":[{"id":201,"name":'短裙'}, {"id":202,"name":'连衣裙'}, {"id":203,"name":'裤子', "sub":[{"id":2031,"name":'长裤'}, {"id":2031,"name":'九分裤'}, {"id":2031,"name":'七分裤'} ] } ] } ]; </script> </head> <body> <script> //创建<select></select>元素 var sel0=document.createElement("select"); document.body.appendChild(sel0); //在一级菜单中增加默认选项:"-请选择-" sel0.add(new Option("-请选择-",0)); for(var i=0;i<data.length;i++){ //遍历data数组,在一级菜单下增加option sel0.add(new Option(data[i].name,data[i].id)); } sel0.onchange=function(){ var index=sel0.selectedIndex-1; while(document.body.lastChild!=sel0){ document.body.removeChild(document.body.lastChild); }//一级选项发生变化,则删除所有后续select loadSub(data[index]); }; function loadSub(parent){//加载任意父对象的sub if(parent&&parent.sub){ //如果父元素有效,且包含sub,则创建子select var sel=document.createElement("select"); document.body.appendChild(sel); var subs=parent.sub;//获得子数组 sel.add(new Option("-请选择-",0)); for(var i=0;i<subs.length;i++){ sel.add(new Option(subs[i].name,subs[i].id)); } sel.onchange=function(){ //任意一级select发生变化,都先清空下级select while(document.body.lastChild!=this){ document.body.removeChild(document.body.lastChild); } var index=this.selectedIndex-1; //parent表示当前select的上级 //parent.sub表示当前select中的所有选项 //parent.sub[i]表示当前select中选中的选项 var sub=parent.sub[index]; //将当前选中的对象,作为父对象,继续找sub loadSub(sub);//递归函数调用 } } } </script> </body></html>
运行结果如下:
0 0
- Javascript如何实现无限级菜单联动实例
- javascript实现联动菜单
- Javascript实现二级联动菜单
- 无刷新无限级菜单联动
- Ajax无限联动菜单
- 无限联动菜单
- 无限级javascript树形菜单
- Javascript无限级树形菜单
- Javascript实现自动无限级关联下拉菜单
- ajax联动菜单--无限区域分级的实现
- JAVAScript 实现的城市联动菜单
- 实现select菜单联动的javascript方案
- 一个实现省市菜单联动的JavaScript
- JavaScript 学习--二级联动菜单实现
- javascript 实现联动的下拉菜单
- 使用javascript实现二级联动菜单
- 无限级的JavaScript菜单(JavaScript对象)
- CSS实现无限级菜单
- 期末总结
- 14.使用UITableView来制作一个店铺信息表格
- 抽象类和接口的概述以及区别
- iOS银联支付的流程
- Eclipse之设置字体大小
- Javascript如何实现无限级菜单联动实例
- 对C#和.net使用List<自定义>和Json格式相互转化的总结
- eclipse中运行两个main函数
- Importing video using Javacv
- Ext.js5表单—有真实的load,submit行为的表单(reader在json.xml中record的区别)(49)
- Android版本和API Level
- TabHost的使用理解
- .Net 应用中使用dot trace进行性能诊断
- linux命令学习(3)