最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
js 实现省市区三级联动菜单效果
时间:2017-04-20 编辑:简简单单 来源:一聚教程网
效果如下:
代码如下:
代码如下 | 复制代码 |
var proData = [], cityData = [], distData = []; var proSelect = document.getElementById("province"), citySelect = document.getElementById("city"), districtSelect = document.getElementById("district"); var curPro = "", curCity = ""; // 封装更新选择列表函数 function fillselect(select,list){ for (var i = select.length-1; i > 0 ; i--){ select.remove(i); } list.forEach(function(data){ var option = new Option(data.name, data.sheng); option.dataset.di = data.di; select.add(option); }) } // 将数据按省、市、地区分别存储 dataJson.forEach(function(data){ if (data.level === 1){ proData.push(data); } if (data.level === 2){ cityData.push(data); } if (data.level === 3){ distData.push(data); } }) fillselect(proSelect,proData); // 监听一级省份选择列表change事件,更新二级城市列表 proSelect.addEventListener("change",function(event){ var val = event.target.value; var list = []; cityData.forEach(function(d){ if (d.sheng === val) { list.push(d); } }) fillselect(citySelect,list); }) // 监听二级城市选择列表change事件,更新三级区域列表 citySelect.addEventListener("change",function(event){ var val = event.target.value; var curIndex = event.target.selectedIndex; curCity = event.target[curIndex].dataset.di; console.log(event.target,curCity); var list = []; distData.forEach(function(d){ if (d.di === curCity && d.sheng === val) { list.push(d); } }) fillselect(districtSelect,list); })
|
相关文章
- js制作可以延时消失的菜单的教程 01-14
- js ztree树型菜单实现节点移动到另一个ztree的例子 05-22
- js 三级地市联动菜单演示效果代码 10-08
- js 当鼠标移动到二级菜单时当前一级菜单高亮 08-17
- js文章内容中关键字相关右键菜单效果 06-22
- 不错的js折叠菜单代码 06-07