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

JavaScript最新实现城市级联操作,json格式的数据

前置知识:

        <button onclick="doSelect()">操作下拉列表</button><hr>学历:<select id="degree"><option value="0">--请选择学历--</option><option value="1">专科</option><option value="2">本科</option><option value="3">硕士</option><option value="4">博士</option></select>

 点击按钮:添加新的选项框Option

            /*** 添加一个option*/ //方式1// var option = document.createElement('option')// option.value = 5;// option.innerText = '博士后';// degree.appendChild(option);//方式2var option = new Option('博士后',5);degree.add(option)

 Json的相关知识:

JavaScript Object Notation 是一种轻量级的数据交换格式,用于表示JavaScript对象的一种方式

采用与编程语言无关的文本格式,易于阅读和编写,同时也易于解析和生成。

 /*** 定义一个json对象*/var user = {"id":1001,"name":"tom","age":20,"height":175,"address":{"province":"江苏省","city":"南京市","distinct":"秦淮区"}} console.log(user.name);console.log(users);console.log(user.height)console.log(user.address.province);console.log(user.address.city);console.log(user.address.distinct);

有了以上知识,就可以实现该功能了:

 首先需要引入json数据:JOSN最新省、市、县(区)数据

这是我的文件格式:

json数据: 

引入json对象:

  <script src="json/province.json"></script>

body:标签里面的内容:

    省份:<select id="provinceId"><option value="0">--请选择省份--</option></select>城市:<select id="cityId"><option value="0">--请选择城市--</option></select>区域:<select id="areasId"><option value="0">--请选择区域--</option></select>
<script>/*** 实现二级联动的效果*/console.log(provinces);// console.log(provinces[0].title);// console.log(provinces.length);//获取省份属性var province = document.getElementById('provinceId');var city = document.getElementById('cityId');var area = document.getElementById('areasId');for (let i = 0; i < provinces.length; i++) {var option = new Option(provinces[i].title, provinces[i].code);province.add(option);}//获取城市属性//获取省份被选中的code// province// 为省份下拉列表添加事件监听器var citiesArr;province.addEventListener('change', () => {for (let i = 0; i < provinces.length; i++) {if (province.value == provinces[i].code) {var citiesArr = provinces[i].city;}}//清空上次级联列表city.length = 1;for (let j = 0; j < citiesArr.length; j++) {var option = new Option(citiesArr[j].title, citiesArr[j].code)city.add(option);}})//获取地区var areasArr;city.addEventListener('change', () => {for (let i = 0; i < provinces.length; i++) {if (province.value == provinces[i].code) {var citiesArr = provinces[i].city;// console.log(city.value);// console.log(provinces[i].city[0].area);// console.log(provinces[i].code);for (let j = 0; j < citiesArr.length; j++) {if (city.value == citiesArr[j].code) {// console.log(citiesArr[j].area);areasArr = citiesArr[j].area;console.log(areasArr);}}}}//清空上次级联列表area.length = 1;for (let i = 0; i < areasArr.length; i++) {var option = new Option(areasArr[i].title, areasArr[i].code);area.add(option);}})</script>

实现效果如下:

http://www.lryc.cn/news/309493.html

相关文章:

  • SD NAND:为车载显示器注入智能与安全的心脏
  • 矩阵的对角化
  • React编写组件时,如何省略.tsx后缀
  • 移动端的React项目中如何配置自适应和px转rem
  • TypeScript 结合 React 开发时候 , React.FunctionComponent 解释
  • 2280. 最优标号(最小割,位运算)#困难,想不到
  • RestTemplate启动问题解决
  • Docker部署前后端服务示例
  • 方格分割644--2017蓝桥杯
  • 接口测试用例设计注意点
  • 学习linux从0到工程师(命令)-4
  • 【树莓派系统配置+python3.8+环境配置踩坑点汇总】raspberrypi
  • CTFHUB--文件包含漏洞--RCE
  • Android 解决引入的三方库中类名冲突问题
  • 扩展学习|大数据分析的现状和分类
  • java学习笔记-初级
  • 使用axios 封装大文件上传,支持断点续传的功能
  • 在python中,设置json支持中文字符串
  • qnx du统计目录大小单位
  • 测试人员如何向开发人员准确清晰地描述问题?
  • 何恺明新作 l-DAE:解构扩散模型
  • 【数学建模获奖经验】2023第八届数维杯数学建模:华中科技大学本科组创新奖获奖分享
  • Kubernetes(k8s第二部分)
  • mac新环境
  • 神经网络基础知识:LeNet的搭建-训练-预测
  • SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter
  • 浅谈密码学
  • Android 混淆是啥玩意儿?
  • 【嵌入式——QT】QListWidget
  • 爬虫入门到精通_基础篇5(PyQuery库_PyQuery说明,初始化,基本CSS选择器,查找元素,遍历,获取信息,DOM操作)