当前位置: 首页 > news >正文

Js写的二级联动和三级联动

二级联动的实现
第一步
在HTML页面创建两个 select 下拉列表元素,并设置id为 ‘province’和id ‘city’

<!--省份-->
<select id="province" onchange="getCity()"></select><!--城市-->  
<select id="city"><option>请选择</option>
</select>

第二步
在HTML创建js标签 用于写js代码,当然也可以创建一个js文本写js代码,我这里纯属是想偷懒所以直接在html页面使用script标签里面写,效果一样;

好了,不啰嗦,现在开始写js代码

首先我们要创建 javaScript 对象字面量,它是[object literal]的一种形式;是用来创建包含键值对的对象,可以快速地创建和初始化一个对象,不再需要定义一个构造函数!

//省市对应数据
var data = {"北京市": ["东城区", "西城区", "朝阳区", "海淀区", "丰台区"],"上海市": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区"],"广东省": ["深圳市", "广州市", "珠海市", "中山市", "东莞市"]
};

接下来就是for(var key in data)初始化省份

getElementById("xxx") 获取id
createElement("xxx") 创建一个html元素节点
   //初始化省份var province = document.getElementById("province");for (var key in data) {var option = document.createElement("option");option.innerText = key;province.appendChild(option);}

创建函数获取城市

//获取城市function getCity() {var provinceName = province.value;var city = document.getElementById("city");city.innerHTML = "";if (data[provinceName]) {for (var i = 0; i < data[provinceName].length; i++) {var option = document.createElement("option");option.innerText = data[provinceName][i];city.appendChild(option);}}}

写到这里,二级联动也就写完了

三级联动的实现
三级联动的实现要比二级联动实现复杂了一点点,但是,并不算难!

第一
老套路,和上面二级联动一样,先在HTML创建三个 下拉列表

  <select id="province"></select><select id="city"><option>请选择</option></select><select id="district"><option>请选择</option></select>

第二
和上面一样在html创建

var data = {"广东省": {"珠海市": ["香洲区", "斗门区"],"广州": ["番禺", "黄埔"]},"仙侠世界": {"玄幻大陆": ["无敌区", "无人区"],"科技大陆": ["天才区", "学士区"]}
};

1)接下来就是for(var key in data)初始化省份

// 获取省份列表
var province = document.getElementById("province");
for (var key in data) {var option = document.createElement("option");option.text = key;province.add(option);

2)根据省份获取城市列表

// 根据省份获取城市列表
function getCity() {var city = document.getElementById("city");var district = document.getElementById("district");//城市为0,当选择了省份的时候才有数据city.options.length = 0;var selectedProvince = province.options[province.selectedIndex].text;//循环遍历data城市数据到optionfor (var key in data[selectedProvince]) {var option = document.createElement("option");option.text = key;//添加数据city.add(option);}
}

3)根据城市获取区县列表

// 根据城市获取区县列表
function getDistrict() {var district = document.getElementById("district");//区县为0,当选择了城市的时候才有数据district.options.length = 0;//获取城市var selectedProvince = province.options[province.selectedIndex].text;//获取区县var selectedCity = city.options[city.selectedIndex].text;//循环遍历for (var i = 0; i < data[selectedProvince][selectedCity].length; i++) {var option = document.createElement("option");option.text = data[selectedProvince][selectedCity][i];district.add(option);}
}// 函数绑定到省份和城市下拉框的 onchange 事件上
//县列表以便在用户选择不同的省份或城市时自动更新城市和区
province.onchange = getCity;
city.onchange = getDistrict;
http://www.lryc.cn/news/90722.html

相关文章:

  • 一文带你了解UI自动化测试框架
  • 【Linux】守护进程
  • Vue中组件和插件有什么区别?
  • 第五章 图像处理
  • 算法8.从暴力递归到动态规划1
  • 8-JDBC 编程
  • 零基础如何学习 Web 安全?
  • 【简单实用框架】【AddressablesMgr】【可移植】
  • android 12.0Launcher3禁止拖拽app图标到第一屏
  • SkyLine简介
  • 算法基础学习笔记——④前缀和\差分\双指针\位运算
  • 【Linux系统基础快速入门详解】Linux下安装软件必知必会4种方法(yum,编译安装,rpm包,二进制方式)等详解
  • ASEMI代理长电可控硅BT136参数,BT136规格,BT136说明
  • 代码线程安全
  • Filebeat技术栈总结
  • 【App自动化测试】(十六)健壮性测试工具——Android Monkey
  • 实现第一个内核程序的Hello World
  • python基于协同过滤推荐算法的电影观后感推荐管理系统的设计
  • Vue——状态管理库Pinia
  • Linux:忘记root密码解决办法
  • Dockerfile(4) - RUN 指令详解
  • 一个完整的APP定制开发流程是怎样的?
  • 【数据结构】24王道考研笔记——线性表
  • 【Linux C】基于树莓派/香橙派的蓝牙服务端——支持多蓝牙设备接入
  • 鸿蒙App开发选择Java还是JavaScript?
  • 【Android】CountDownTimer的使用
  • Linux :: 【基础指令篇 :: 文件及目录操作:(1)】:: ls :: 查看指定目录下的内容
  • 【商品详情 +关键词搜索】API 接口系列
  • RabbitMQ学习-发布确认高级
  • 重载和内联函数