三级联动(地址:省市区)

利用原生JS实现省市区三级联动(详解) JavaScript实现省市区三级联动1.遍历数据2.二级联动的实现3.三级联动的实现 1.遍历数据 数据链接 提取码: bv3t 2.二级联动的实现 3.三级联动的实现 阅读详情

 JS 原生

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <select name="" id="select1"></select>
  <select name="" id="select2"></select>
  <select name="" id="select3"></select>
</body>

</html>
<script src="./area.js"></script> //引入外部省 市 区文件
<script>
  // 1先将省 市 区 分别显示在页面上 在页面加载完成后显示 会有一个默认值(默认值是第一个值)
  var sele = document.querySelectorAll("select");
  // sele[0] == 第一个下拉框
  // sele[1] == 第二个  sele[2] == 第三个

  // 获取一个省 data[0].name == 第一个省份   data[i].name == 所有省份
  // 遇见数组foreach 遇见对象forin

  // 3.1声明一个空字符串为了在循环内获取option加省分内容的标签
  var prov = "";
// 2获取所有省份
  data.forEach(function (item) {
    // 2.1item == data[0]&&data[1]....  == 数组内所有元素 == data内每个对象

    // console.log(item.name);
    // 通过string拼接创建一个标签 
    // 3.prov += "<option value='"+item.name+"'>"+item.name+"</option>"
    // ``${} 只是字符串提供的一种新的拼接方式 是es6语法
    // 3.
    prov += `<option value="${item.name}">${item.name}</option>`;

    // 3.通过dom方法创建标签 给标签设置内容和属性 添加到第一个下拉框内
    // var option = document.createElement("option");
    // option.innerText = item.name;
    // option.value = item.name;
    // sele[0].appendChild(option);
  })
  // 3.2在循环结束后得到的是所有的省份信息填写如option内的总和
  // console.log(prov);
  // 3.3将装载省份的标签添加到sele[0]内
  sele[0].innerHTML = prov;

  // 4.首先获取一个city 设置市的内容
  // data[0].city == [{name:"市"},{name:"市"},{name:"市"}]

  // 6.当第一个下一框内容发生更改时触发 
  sele[0].onchange = function () {
    // 获取选中option的索引值
    // console.log(this.selectedIndex);
    // 根据选中option的索引值来重新设置市的内容
    // var city = "";
    // data[this.selectedIndex].city.forEach(function (item) {
    //   city += `<option value="${item.name}">${item.name}</option>`;
    // })
    // sele[1].innerHTML = city
    // 8.调用函数 根据第一个下拉框的索引值来对应的获取市然后显示在页面上
    cityFun(this.selectedIndex)
    // 13. 当省发生更改的时候同时在设置区的内容更改 更改为当前省下的第一个市所对应的区
    areaFun(this.selectedIndex,0)
  }

  // 5.设置第二个下拉框的初始值 值在第一个省份下拉框更改时 会随着更改
  // 7.因为设置市会多次执行所以使用函数封装
  function cityFun(i) {
    var city = "";
    data[i].city.forEach(function (item) {
      city += `<option value="${item.name}">${item.name}</option>`;
    })
    sele[1].innerHTML = city
  }
  cityFun(0)



  // 10.设置市更改的时候让区的值跟着更改 手动操作市的时候
  sele[1].onchange = function () {
    // console.log("===");
    // console.log(sele[0].selectedIndex,sele[1].selectedIndex)
    // 12.调用的时候 让区根据当前省的下拉索引值和市的下拉索引值来获取相关的区 显示在页面上
    areaFun(sele[0].selectedIndex,sele[1].selectedIndex)
  }

  //  9.获取默认显示的第一个省的第一个市内的区 data[0].city[0].area == ["区1","区2","区3"...]
  // 11.因为区是在省或者市发生变化的时候都需要更改 所以函数封装一下
  function areaFun(a,b) {
    var area = "";
    data[a].city[b].area.forEach(function (item) {
      area += `<option value="${item}">${item}</option>`;
    })
    sele[2].innerHTML = area;
  }
  // 初始先调用执行一次
  areaFun(0,0); 
</script>

jquery 三级联动:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./area.js"></script>
    <script src="./jquery.min.js"></script>
</head>
<body>
    <select name="province" id="province">

    </select>
    <select name="city" id="city">

    </select>
    <select name="area" id="area">

    </select>
    <script>
        var str = '';
        for(var i = 0;i<data.length;i++){//遍历data,将每个省份添加到省的select框中
            str += '<option value="'+i+'">'+data[i].name+'</option>';//value对应option里的内容在data里的索引
        }
        $('#province').html(str);

        var str = '';
        for(var i =0;i<data[0].city.length;i++){//遍历当前显示的省份对应的城市的数组,把城市名添加到市的select框中
            str += '<option value="'+i+'">'+data[0].city[i].name+'</option>';
        }
        $('#city').html(str);

        var str = '';
        for(var i =0;i<data[0].city[0].area.length;i++){//遍历当前显示的省份及城市对应的区县的数组,把区县名添加到区县的select框中
            str += '<option value="'+i+'">'+data[0].city[0].area[i]+'</option>';
        }
        $('#area').html(str);

        $('#province').change(function(){
            var index = $('#province').val();
            var str = '';
            for(var i =0;i<data[index].city.length;i++){//遍历当前显示的省份对应的城市的数组,把城市名添加到市的select框中
                str += '<option value="'+i+'">'+data[index].city[i].name+'</option>';
            }
            $('#city').html(str);
            $('#city').trigger('change');//手动触发city的change事件
        })
        $('#city').change(function(){
            var index1 = $('#province').val();
            var index2 = $('#city').val();
            var str = '';
            for(var i =0;i<data[index1].city[index2].area.length;i++){//遍历当前显示的省份及城市对应的区县的数组,把区县名添加到区县的select框中
                str += '<option value="'+i+'">'+data[index1].city[index2].area[i]+'</option>';
            }
            $('#area').html(str);
        })

    </script>
</body>
</html>

jquery封装:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./area.js"></script>
    <script src="./jquery.min.js"></script>
</head>
<body>
    <select name="province" id="province">

    </select>
    <select name="city" id="city">

    </select>
    <select name="area" id="area">

    </select>
    <script>
        function change(source,dom){
            var str = '';
            if(typeof source[0] == 'object'){
                for(var i = 0;i<source.length;i++){
                    str += '<option value="'+i+'">'+source[i].name+'</option>';
                }
            }else{
                for(var i = 0;i<source.length;i++){
                    str += '<option value="'+i+'">'+source[i]+'</option>';
                }
            }
            $(dom).html(str);
        }
        change(data,'#province');
        change(data[0].city,'#city');
        change(data[0].city[0].area,'#area');

        $('#province').change(function(){
            var index = $('#province').val();
            change(data[index].city,'#city');
            $('#city').trigger('change');//手动触发city的change事件
        })
        $('#city').change(function(){
            var index1 = $('#province').val();
            var index2 = $('#city').val();
            change(data[index1].city[index2].area,'#area')
        })

    </script>
</body>
</html>

 

js 简单的三级联动 (省市区) js (省市区)简单的三级联动 1、给定三个select ,在第一个select中添加一个option指定“请选择” 2、获取三个select的标签节点 3、获取三个list的值(本次虚拟给定) 4、定义一个下标 5、遍历第一个list集合的数据,给第一个select添加option -------》(市) 6、写第一个select文本框的触发事件(onchange ----》元素内容发生改变,事... 阅读详情

相关推荐

Contest 226 - C - Martial artist

from atcoder Problem Statement Time Limit: 2 sec / Memory Limit: 1024 MB Score :300300points Takahashi is a martial artist. There areNNmoves that a martial artist can learn, called Move11,22,\ldots…,NN. For each1 \leq i \leq N1≤i≤N, it takes...

m0_54674275的博客 1020

省-市-区三级联动选择地址 + 地图定位(高德api定位获取位置信息),互相联动显示

一,前言 需求:省市区三级联动下拉选择出数据并地图显示位置,地图上选择定位位置三级联动反显出省市区; 准备: 1.需要全国地址完整(省市区-地区code)的area.json,下载area.js资源。 2.地址定位这里用的是高德api故需要申请高德web开发相关申请配置 见这篇。 二,实现 1.html:这里用的vue <template> <!-- 省市区三级联动 --> <el-form label-width="110p...

徐子厚的博客 5657

ADS2020实战:手把手教你搭建交叉耦合VCO并分析相位噪声(附避坑指南)

本文以ADS2020软件为例,提供了交叉耦合压控振荡器(VCO)从原理图搭建到相位噪声分析的完整实战指南。详细讲解了核心器件选择、谐波平衡与瞬态仿真的关键设置,并重点剖析了相位噪声的仿真方法与优化方向。文中附有详细的避坑指南,帮助初学者和工程师高效完成VCO设计与仿真验证,避免常见错误。

p5l2m9n4o6q的博客 277

地址省市县三级联动------数据库设计

数据库设计 DROP TABLE IF EXISTS `sys_address`; CREATE TABLE `sys_address` ( `region_id` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '地区主键编号', `region_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT...

weixin_58696998的博客 2785

STM32移植LVGL(LittleVGL)

**STM32移植LVGL(LittleVGL)**

qq_53000374的博客 1万+

微信聊天记录丢失原因与恢复方案详解

SQLite数据库作为移动应用常见的本地存储方案,其加密机制和存储结构直接影响数据安全性。以微信为例,聊天记录存储在EnMicroMsg.db等SQLite文件中,采用AES加密保护。当手机清理工具误删这些文件时,会导致特定时间段记录丢失。理解数据恢复原理需要掌握文件系统删除机制和闪存特性,其中关键点包括TRIM指令的影响和数据块覆盖风险。通过专业工具如DiskDigger或iMyFone D-Back,配合ADB调试和SQLite数据重组技术,可在黄金时间窗口内恢复记录。日常维护建议结合自动化备份方案和存

weixin_32612263的博客 386

用js实现省市区三级联动

前言 本来想搞一个简单的省市区三级联动,然后在网上找资料发现了一个大佬写的好几种方式,挺全的,很想分享给大家。我选取了其中的一种方式单拿了出来,作为例子给大家看看。找不到博客了,但GitHub的地址浏览记录还有,链接放在最后哦。 另外,走过路过的小伙伴们点个赞和关注再走吧,欢迎评论区交流呀,一起努力一起成长! 笔芯 index.html文件 <!DOCTYPE html><html lang="en"><head> <me...

qq_46007633的博客 9085

多智能体系统在AI物流优化中的实际应用案例

订单波峰波谷难应对(如双11订单量暴增300%);动态干扰难处理(如突发交通拥堵、客户临时改地址);全局优化难实现(单辆车最优≠整体最优)。本文聚焦“多智能体系统(MAS)”这一AI技术,讲解其如何通过“群体智能”破解物流调度难题,并结合实际案例展示落地效果。本文从“生活故事→核心概念→技术原理→实战案例→未来趋势”逐步展开,用“快递员团队协作送外卖”类比MAS运作,结合Python代码模拟任务分配,最后通过某物流企业的真实项目验证效果。

AIGC应用创新大全的博客 1631

微信小程序地址选择器:数据驱动下的省市区三级联动架构解析

在微信小程序开发中,地址选择功能是电商、物流、社交等众多应用场景中的高频需求。传统的地址选择实现往往面临着数据更新困难、用户体验不佳、代码冗余等问题。本文将深入剖析一个基于数据驱动设计的省市区三级联动选择器项目,探讨其架构设计理念、技术实现细节以及在实际开发中的应用价值。 ## 设计理念:从用户痛点出发的组件化思维 地址选择器看似简单,实则蕴含着复杂的交互逻辑和数据管理需求。用户在填写收货地址

gitblog_00067的博客 149

大数据分析工具Power BI(二):Power BI下载安装和模块介绍

首先在Microsoft官方网站上下载PowerBI Desktop,然后进行安装。id=58494点击"Next"后会弹出下载框,进行下载即可,下载好的PowerBI名称为"PBIDesktopSetup_x64.exe",也可以在"资料"中获取安装包,双击安装包即可安装。

Lansonli(蓝深李)的博客 2317

基于Flink的流式数据降维实现方案

理解为何实时场景需要降维(解决维度灾难)掌握Flink流处理与降维算法的结合方式学会用Flink实现一个可落地的流式降维系统覆盖内容包括:Flink流处理基础、降维算法选择(侧重在线算法)、Flink与降维的集成方案、实战代码示例,以及工业级场景的应用经验。本文从“为什么需要流式降维”出发,用“快递分拣”的生活案例引出核心概念;接着拆解Flink流处理、数据降维的底层逻辑;然后重点讲解“在线PCA”这一适合流式场景的降维算法,并用Flink实现一个完整的流式降维管道;

AI 领航者的博客 566

CityPicker:Android 省市区三级联动地址选择器,开箱即用

在 Android 开发里,省市区三级联动是绕不开的高频需求。CityPicker 是一款开箱即用的省市区选择器,内置完整的行政区域数据,提供仿 iOS 滚轮、仿京东列表等多种样式,几行依赖即可集成。 ## 解决什么痛点:别再为省市区重复造轮子 做收货地址、用户资料页,省市区联动往往得自己从头写。行政数据从哪拿、怎么保持更新,都是隐形成本。各家实现风格不一,UI 还容易不统一。与其重复造轮子,

gitblog_00857的博客 129

Lammps实现甲烷与水的竞争吸附-循环不同气体分子

Lammps实现甲烷与水的竞争吸附

Rockyoung 5375

【免费下载】 省市区三级联动城市数据JS文件:轻松实现地址选择功能

省市区三级联动城市数据JS文件:轻松实现地址选择功能 【下载地址】省市区三级联动城市数据JS文件 本仓库提供了一个用于实现省市区三级联动的城市数据JS文件。该文件可以直接复制并放入`citys.js`文件中使用,文件名可以根据需要自定义 ...

gitblog_06584的博客 793

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python学习之美多商城(十):用户模块--用户中心收货地址、省市区三级联动、使用缓存保存省市区、用户地址管理

收货地址: 在这个页面中,我们要实现用户地址的管理,主要的业务逻辑有: 省市区地址的数据库建立与查询 用户地址的增删改查处理 设置默认地址 设置地址标题 一、省市区三级联动: 1.三级联动: 在用户录入地址是,需要进行省市区的选择。在页面加载时,向后端请求省份数据,当用户选择确定省份后,向后端请求该省份下的城市数据;在用户选择确定城市数据后,向后端请求该城市的区县信息。我们把这个过程称为省...

浅弋、璃鱼的博客 3764

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Vue如何使用vue-area-linkage实现地址三级联动效果 很多时候我们需要使用地址三级联动,即省市区三级联动。网上有很多插件,在此介绍Vue的一款地区联动插件:vue-ar

Vue如何使用vue-area-linkage实现地址三级联动效果         很多时候我们需要使用地址三级联动,即省市区三级联动。网上有很多插件,在此介绍Vue的一款地区联动插件:vue-area-linkage,下面介绍如何使用这个插件实现地址联动效果:         1.安装vue-area-linkage插件:npm install --save vue-area

路在脚下,幸福在手中,莫贪!!!!! 2479

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

微信小程序的省市区三级地址mysql_微信小程序:省市区三级联动(升级版)

之前搞了一个 传送门,缺点明显,思索一番,An idea flitted through my mind.// test.wxml地址{{province}} {{city}} {{area}}{{item.name}}{{item.name}}{{item}}//test.js 截取了部分省市区数据const placeArray = [{"name": "北京","city": [{"nam...

weixin_42314860的博客 481

终极微信小程序地址选择器:快速实现省市区三级联动 [特殊字符]

还在为微信小程序的地址选择功能而烦恼吗?想要快速实现省市区三级联动却不知从何入手?这个终极微信小程序地址选择器项目正是你需要的解决方案!它提供了一套完整、简单、免费的省市区地址选择联动组件,让你在几分钟内就能集成到自己的小程序中。 ## 🎯 项目核心功能亮点 **省市区三级联动选择**是这个项目的核心关键词,它完美解决了地址选择中的层级联动问题。通过滑动选择或点击操作,用户可以从省→市→区依

gitblog_00328的博客 538

5分钟快速上手:微信小程序省市区三级联动地址选择器终极指南

在微信小程序开发中,地址选择功能是电商、物流、用户资料等场景的刚需。然而,手动实现省市区三级联动选择器既耗时又容易出错。今天,我为你推荐一个开源的微信小程序地址选择器组件,让你在5分钟内快速集成完整的省市区联动功能,大幅提升开发效率! ## 🚀 为什么选择这个微信小程序地址选择器? 这个开源项目专为微信小程序开发者设计,解决了地址选择的核心痛点。通过智能的省市区三级联动机制,用户只需简单滚动

gitblog_01200的博客 343

终极指南:5分钟快速集成微信小程序省市区三级联动地址选择器

想在微信小程序中快速实现省市区三级联动地址选择功能吗?这个开源项目为你提供了完美的解决方案!微信小程序省市(区)地址选择联动组件让用户能够轻松选择完整的收货地址,提升用户体验的同时简化开发流程。无论是电商平台的收货地址选择,还是服务类小程序的地理位置信息收集,这个组件都能帮你节省大量开发时间。 ## 🎯 项目核心功能与优势 这个微信小程序组件实现了**省市区三级联动选择器**,具备以下核心功

gitblog_00455的博客 130

中国省市区地址三级联动jQuery插件:一个简单的jQuery插件,用于选择中国的省、市、区

在前端时间项目开发中因为使用的是jQuery 项目需要用到三级联动 在网上找了很久都不是比较简便和理想 最后不经意之间找到这个插件 也顺便分享给大家 博主在次处作为转载方 开源不易大家也可也到原博主的GitHub中点上☆☆支持一下 插件有很多种不同模式 在配置、兼容、和使用方面都比较完美 在页面中引入封装好了的必要js文件即可其使用方式有多种可根据实际需要进行使用 1:直接引用 自动关联 <...

qq_41193701的博客 778

微信小程序省市区三级联动地址选择器:5分钟极速集成指南

想象一下,你正在开发一个电商小程序,用户需要填写收货地址。面对全国34个省级行政区、数百个城市、上千个区县,如何让用户快速准确地选择地址?手动输入?太麻烦。自己开发选择器?时间成本太高。现在,让我为你介绍一个能让你在5分钟内解决这个痛点的神器——微信小程序省市区三级联动地址选择器组件。 ## 🌟 项目核心价值:像搭积木一样构建地址选择功能 这个开源组件将复杂的地址选择逻辑封装成即插即用的模板

gitblog_00745的博客 150

Vue+ElementUI实现商品限售区域功能:省市区三级地址联动支持多选,配置允许购买区域

本文介绍了基于Vue和ElementUI实现商品限售区域功能的方法,主要包括商家端配置和商城端校验两个模块。商家端使用省市区三级联动选择组件,支持数据压缩优化处理:当父级地址全部子级被选中时只传父级数据。商城端根据用户收货地址判断商品是否可售。文章详细展示了实现步骤,包括安装依赖库element-china-area-data、商家端弹框组件的HTML结构、JS数据处理逻辑(初始化树形数据、状态管理、提交优化等)。该方案解决了电商平台常见的商品区域限售需求,具有较好的实用性和可扩展性。

qq_39534956的博客 770

终极指南:5分钟快速上手微信小程序地址选择器,实现省市区三级联动

想要在微信小程序中快速集成省市区地址选择功能吗?这个开源项目为你提供了完美的解决方案!微信小程序省市(区)地址选择联动组件让用户能够轻松选择完整的收货地址,提升用户体验的同时简化开发流程。 ## 🎯 项目核心功能 这个微信小程序组件实现了**省市区三级联动选择器**,用户可以: - 通过滚动选择省份、城市和区县 - 实时查看选择的完整地址信息 - 一键获取已选择的城市数据 通过[src/p

gitblog_00208的博客 476

微信小程序地址选择器的技术突围:5分钟解决省市区三级联动难题

在微信小程序开发中,地址选择功能看似简单,实则暗藏技术痛点。传统实现方式往往面临数据更新不及时、用户体验不流畅、代码冗余度高等问题。wx_selectArea项目通过创新的技术方案,为开发者提供了开箱即用的省市区三级联动选择器组件,5分钟内即可完成集成。 ## 问题痛点:为什么地址选择成为小程序开发的瓶颈? 地址选择功能在电商、物流、社交等各类小程序中都是刚需,但传统实现方式存在三大核心痛点:

gitblog_00007的博客 631
上一篇: 配置php
下一篇: 四级联动(js)
昨夜太平长安888
博客等级 码龄9年 1万+粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值