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);

            //方式2
            var 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>

实现效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/414046.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

可观测性在威胁检测和取证日志分析中的作用

在网络中&#xff0c;威胁是指可能影响其平稳运行的恶意元素&#xff0c;因此&#xff0c;对于任何希望避免任何财政损失或生产力下降机会的组织来说&#xff0c;威胁检测都是必要的。为了先发制人地抵御来自不同来源的任何此类攻击&#xff0c;需要有效的威胁检测情报。 威胁…

IDEA如何开启Dashboard

普通的面板 Run Dashboard面板 修改配置文件 找到项目的.idea文件夹 点击编辑workspace.xml文件 添加下方代码 <component name"RunDashboard"><option name"ruleStates"><list><RuleState><option name"name" valu…

第 2 章 微信小程序的构成 (代码导读)断更,后续继续更新

2.1 小程序项目的基本结构 Hello World&#xff01;程序.mp4 文泉云盘 -- 图书二维码资源管理系统兆泰源二维码管理系统https://www.wqyunpan.com/resourceDetail.html?id284928&openIdoUgl9wdyNYHu9EcAe-GEwbQdZilY&qrcodeId242916&signc2lnbm1PUmNxSndPWGFOck…

Nginx反向代理ip透传与负载均衡

前言 上篇介绍了nginx服务器单向代理和动静分离等相关内容&#xff0c;可参考Nginx重写功能和反向代理-CSDN博客&#xff0c;这里就ip透传和负载均衡对nginx反向代理做进一步了解。 目录 一、客户端ip透传 1. 概述 2. 一级代理 2.1 图示 2.2 操作过程 3. 二级代理 3.…

Nginx——安装和反向代理

Nginx安装与应用 1.1 Nginx介绍 Nginx 是一个高性能的HTTP和反向代理服务器,特点是占有内存少&#xff0c;并发能力强 Nginx可以作为静态页面的web服务器&#xff0c;同时还支持CGI协议的动态语言&#xff0c;比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合…

Java最新面试宝典 SpringMVC面试题)

Java最新面试宝典 SpringMVC面试题 前言1、什么是SpringMVC&#xff1f;2、SpringMVC 的优点&#xff1f;3、Spring MVC配置步骤&#xff1f;4、SpringMVC工作原理了解吗&#xff1f;5、Spring MVC 核心组件的功能&#xff1f;6、B/S 系统标准的三层架构是什么&#xff1f;7、C…

python 基础绘图函数 实例

简介 在 Python 中&#xff0c;有许多用于绘图的库。以下是一些常用的 Python 绘图库及其基本绘图函数的简要介绍&#xff1a; Matplotlib: matplotlib.pyplot.plot(x, y): 绘制线图。matplotlib.pyplot.scatter(x, y): 绘制散点图。matplotlib.pyplot.bar(x, height): 绘制条…

【kubernetes】关于k8s集群的声明式管理资源

目录 一、声明式管理方法 二、资源配置清单管理 1、导出资源配置清单 2、修改资源配置清单并应用 2.1离线修改 2.2在线修改 三、通过资源配置清单创建资源对象 获取K8S资源配置清单文件模板&#xff1f; 关于配置清单常见的字段 方案一&#xff1a;手写yaml配置文件 …

css常用的选择器介绍

CSS&#xff08;层叠样式表&#xff09;选择器是CSS规则的一部分&#xff0c;它用于选择和定位网页上的元素&#xff0c;以便将样式应用到这些元素上。CSS选择器的种类繁多&#xff0c;每种选择器都有其特定的用途、特点和效率。在这篇文章中&#xff0c;我们将讨论一些常用的C…

EMR StarRocks实战——Mysql数据实时同步到SR

文章摘抄阿里云EMR上的StarRocks实践&#xff1a;《基于实时计算Flink使用CTAS&CDAS功能同步MySQL数据至StarRocks》 前言 CTAS可以实现单表的结构和数据同步&#xff0c;CDAS可以实现整库同步或者同一库中的多表结构和数据同步。下文主要介绍如何使用Flink平台和E-MapRed…

免费的Git图形界面工具sourceTree介绍

阅读本文同时请参阅-----代码库管理工具Git介绍 sourceTree是一款免费的Git图形界面工具&#xff0c;它简化了Git的使用过程&#xff0c;使得开发者可以更加方便地下载代码、更新代码、提交代码和处理冲突。下面我将详细介绍如何使用sourceTree进行这些操作。 1.下载和…

GEE数据集——数字地球澳大利亚海岸线(更新)

数字地球澳大利亚海岸线 澳大利亚数字地球海岸线是一个大陆数据集&#xff0c;包括从 1988 年至今整个澳大利亚海岸线的年度海岸线和海岸变化率。该产品将澳大利亚地球科学组织的 "澳大利亚数字地球 "计划提供的卫星数据与潮汐模型相结合&#xff0c;绘制出每年平均海…

Vue自定义指令directives

1. 使用<script setup> <template><input v-focus"11111" /><input v-obj"{ id: 1, name: 这里是name }" /> </template> <script setup> //定义一个变量vFocus //命名方法使得DOM元素中可以用v-focus来显示 let vFo…

GPT 的基础 - T(Transformer)

我们知道GPT的含义是&#xff1a; Generative - 生成下一个词 Pre-trained - 文本预训练 Transformer - 基于Transformer架构 我们看到Transformer模型是GPT的基础&#xff0c;这篇博客梳理了一下Transformer的知识点。 BERT:通过自监督的方式,在大规模语料上预训练得到的Tran…

05 动力云客之分页查询用户 + 查询用户详情 + 新增用户

1. 用户列表分页查询实现 核心 使用pageHelper实现分页 GetMapping(value "api/users")//分页的参数可以不传, 不传就默认设置为1public R userPage(RequestParam(value "current", required false) Integer current) {if (current null) {current …

数据服务安全的重要性

数据服务安全在当今信息化社会显得尤为重要。随着大数据、云计算、人工智能等技术的飞速发展&#xff0c;数据已经成为企业和组织的核心资产&#xff0c;数据服务安全也面临着前所未有的挑战。本文将从数据服务安全的重要性、常见威胁、防护策略以及未来发展趋势等方面进行探讨…

chatgpt帮忙看代码瞬间不难受了

目标&#xff1a;初步熟悉下mysql启动流程逻辑、熟悉下mysql增删改查逻辑 材料&#xff1a; 下载个源码包&#xff1a;MySQL :: Download MySQL Community Server安装个visual studio code 软件用来看代码chatgpt 开始&#xff1a; ##怎么容易怎么来&#xff1a;先查查网上别…

Qt篇——QTableWidget保存表格数据到Excel文件中,读Excel内容到QTableWidget

表格和excel例子如下图所示&#xff1a; 一、QTableWidget保存表格数据到Excel文件中 代码如下&#xff1a; &#xff08;pro文件中添加QT axcontainer&#xff09; #include <QAxObject>void MainWindow::saveTableToExcel() {QDateTime current_date_time QDateTi…

SpringBoot:Invalid bound statement (not found)的原因和解决方案

&#x1f413; 报错信息&#xff1a; &#xff08;无效绑定声明&#xff09;找不到 解析&#xff1a; 你的mapper实例对象和对应的mapper.xml对象未找到 &#x1f413; 排查&#xff1a; 情况一&#xff1a; 1.排除相对应的mapper实例对象路径是否正确 查看相对应的mapper中…

MIND解读

这篇paper的核心是胶囊网络&#xff0c;该网络采用了动态路由算法自动对用户历史行为序列进行聚类&#xff0c;提取出多个兴趣向量&#xff0c;代表用户的不同兴趣。当用户再有新的交互时&#xff0c;通过胶囊网络&#xff0c;还能实时的改变用户的兴趣表示向量&#xff0c;做到…