一、需求:
提供省、市下拉列表,当用户选择省一级下拉列表项后,市下拉列表的各个选项自动变为该省对应的城市列表。
二、效果:
三、实现:
1.省市json数据,来自:
http://www.cnblogs.com/jinzhao/archive/2012/04/01/2428142.html
/** * 省市json数据 */ var provinceAndCityArray = [{ name: "北京", cities: ["西城", "东城", "崇文", "宣武", "朝阳", "海淀", "丰台", "石景山", "门头沟", "房山", "通州", "顺义", "大兴", "昌平", "平谷", "怀柔", "密云", "延庆"] }, { name: "天津", cities: ["青羊", "河东", "河西", "南开", "河北", "红桥", "塘沽", "汉沽", "大港", "东丽", "西青", "北辰", "津南", "武清", "宝坻", "静海", "宁河", "蓟县", "开发区"] }, { name: "河北", cities: ["石家庄", "秦皇岛", "廊坊", "保定", "邯郸", "唐山", "邢台", "衡水", "张家口", "承德", "沧州", "衡水"] }, { name: "山西", cities: ["太原", "大同", "长治", "晋中", "阳泉", "朔州", "运城", "临汾"] }, { name: "内蒙古", cities: ["呼和浩特", "赤峰", "通辽", "锡林郭勒", "兴安"] }, { name: "辽宁", cities: ["大连", "沈阳", "鞍山", "抚顺", "营口", "锦州", "丹东", "朝阳", "辽阳", "阜新", "铁岭", "盘锦", "本溪", "葫芦岛"] }, { name: "吉林", cities: ["长春", "吉林", "四平", "辽源", "通化", "延吉", "白城", "辽源", "松原", "临江", "珲春"] }, { name: "黑龙江", cities: ["哈尔滨", "齐齐哈尔", "大庆", "牡丹江", "鹤岗", "佳木斯", "绥化"] }, { name: "上海", cities: ["浦东", "杨浦", "徐汇", "静安", "卢湾", "黄浦", "普陀", "闸北", "虹口", "长宁", "宝山", "闵行", "嘉定", "金山", "松江", "青浦", "崇明", "奉贤", "南汇"] }, { name: "江苏", cities: ["南京", "苏州", "无锡", "常州", "扬州", "徐州", "南通", "镇江", "泰州", "淮安", "连云港", "宿迁", "盐城", "淮阴", "沐阳", "张家港"] }, { name: "浙江", cities: ["杭州", "金华", "宁波", "温州", "嘉兴", "绍兴", "丽水", "湖州", "台州", "舟山", "衢州"] }, { name: "安徽", cities: ["合肥", "马鞍山", "蚌埠", "黄山", "芜湖", "淮南", "铜陵", "阜阳", "宣城", "安庆"] }, { name: "福建", cities: ["福州", "厦门", "泉州", "漳州", "南平", "龙岩", "莆田", "三明", "宁德"] }, { name: "江西", cities: ["南昌", "景德镇", "上饶", "萍乡", "九江", "吉安", "宜春", "鹰潭", "新余", "赣州"] }, { name: "山东", cities: ["青岛", "济南", "淄博", "烟台", "泰安", "临沂", "日照", "德州", "威海", "东营", "荷泽", "济宁", "潍坊", "枣庄", "聊城"] }, { name: "河南", cities: ["郑州", "洛阳", "开封", "平顶山", "濮阳", "安阳", "许昌", "南阳", "信阳", "周口", "新乡", "焦作", "三门峡", "商丘"] }, { name: "湖北", cities: ["武汉", "襄樊", "孝感", "十堰", "荆州", "黄石", "宜昌", "黄冈", "恩施", "鄂州", "江汉", "随枣", "荆沙", "咸宁"] }, { name: "湖南", cities: ["长沙", "湘潭", "岳阳", "株洲", "怀化", "永州", "益阳", "张家界", "常德", "衡阳", "湘西", "邵阳", "娄底", "郴州"] }, { name: "广东", cities: ["广州", "深圳", "东莞", "佛山", "珠海", "汕头", "韶关", "江门", "梅州", "揭阳", "中山", "河源", "惠州", "茂名", "湛江", "阳江", "潮州", "云浮", "汕尾", "潮阳", "肇庆", "顺德", "清远"] }, { name: "广西", cities: ["南宁", "桂林", "柳州", "梧州", "来宾", "贵港", "玉林", "贺州"] }, { name: "海南", cities: ["海口", "三亚"] }, { name: "重庆", cities: ["渝中", "大渡口", "江北", "沙坪坝", "九龙坡", "南岸", "北碚", "万盛", "双桥", "渝北", "巴南", "万州", "涪陵", "黔江", "长寿"] }, { name: "四川", cities: ["成都", "达州", "南充", "乐山", "绵阳", "德阳", "内江", "遂宁", "宜宾", "巴中", "自贡", "康定", "攀枝花"] }, { name: "贵州", cities: ["贵阳", "遵义", "安顺", "黔西南", "都匀"] }, { name: "云南", cities: ["昆明", "丽江", "昭通", "玉溪", "临沧", "文山", "红河", "楚雄", "大理"] }, { name: "西藏", cities: ["拉萨", "林芝", "日喀则", "昌都"] }, { name: "陕西", cities: ["西安", "咸阳", "延安", "汉中", "榆林", "商南", "略阳", "宜君", "麟游", "白河"] }, { name: "甘肃", cities: ["兰州", "金昌", "天水", "武威", "张掖", "平凉", "酒泉"] }, { name: "青海", cities: ["黄南", "海南", "西宁", "海东", "海西", "海北", "果洛", "玉树"] }, { name: "宁夏", cities: ["银川", "吴忠"] }, { name: "新疆", cities: ["乌鲁木齐", "哈密", "喀什", "巴音郭楞", "昌吉", "伊犁", "阿勒泰", "克拉玛依", "博尔塔拉"] }, { name: "香港", cities: ["中西区", "湾仔区", "东区", "南区", "九龙-油尖旺区", "九龙-深水埗区", "九龙-九龙城区", "九龙-黄大仙区", "九龙-观塘区", "新界-北区", "新界-大埔区", "新界-沙田区", "新界-西贡区", "新界-荃湾区", "新界-屯门区", "新界-元朗区", "新界-葵青区", "新界-离岛区"] }, { name: "澳门", cities: ["花地玛堂区", "圣安多尼堂区", "大堂区", "望德堂区", "风顺堂区", "嘉模堂区", "圣方济各堂区", "路氹城"]}];
2.html页面,主要就是放置了两个select,使用了jQuery Mobile:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" /> <title>meetwe</title> </head> <body> <table width="100%" cellpadding="10"> <tr> <td align="center">请选择省份</td> <td align="left"><select id="selectProvince"> <option value="-1">请选择省份</option> </select></td> </tr> <tr> <td align="center">请选择城市</td> <td align="left"><select id="selectCity"> <option value="-1">请选择城市</option> </select></td> </tr> </table> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script> <script src="../js/province-and-city-json.js"></script> <script src="../js/create-province-and-city.js"></script> </body> </html>
3.js代码实现填充下拉列表选项,并响应省一级下拉列表选中项改变事件更改市级下拉列表取值:
$(document).on("pageinit", function() { // 填充省下拉列表 var provincesOptionHtml = ""; var provinces = []; for(var el in provinceAndCityArray) { provinces.push(provinceAndCityArray[el].name); provincesOptionHtml += "<option value=" + el + ">" + provinceAndCityArray[el].name + "</option>"; } $("#selectProvince").append(provincesOptionHtml); // 填充城市下拉列表 $("#selectProvince").bind("change", function() { var selectedProvince = $("#selectProvince :selected").val(); if(selectedProvince != -1) { var citiesOptionHtml = ""; var cities = []; cities = provinceAndCityArray[selectedProvince].cities; for(var elCity in cities) { citiesOptionHtml += "<option value=" + elCity + ">" + cities[elCity] + "</option>"; } // 清空之前的城市列表 $("#selectCity option[value!=-1]").remove(); $("#selectCity option[value=-1]").attr("selected", true); $("#selectCity").append(citiesOptionHtml); $("#selectCity").selectmenu("refresh"); } }); });
相关推荐
总结,"jquery 手机端二级联动选择"是一个典型的前端交互案例,它展示了JQuery在处理用户输入和动态更新页面内容上的强大能力。理解其工作原理和实现方式,对于提升移动端开发技能非常有帮助。同时,了解如何根据...
"select"是HTML中的一个元素,用于创建用户可从多个选项中选择的下拉列表。在三级联动中,通常会有三个select元素,分别代表不同的层级,如省份、城市、区县,或者类别、子类别、具体项等。当用户在一级select中选择...
4. **事件处理**:当用户在第一级(省份)中选择一个选项时,通过jQuery获取该选项的值,根据这个值过滤出相应的城市数据,并更新第二级(城市)的下拉列表。同理,当城市被选中时,更新第三级(区县)的选项。 5. ...
电气自动化仪表工程施工组织设计.doc
内容概要:本文详细介绍了基于C#和VisionPro构建的一个工业视觉通用框架。该框架主要解决了设备开发中的多个痛点,包括但不限于动态界面布局、标定算法、DLL嵌入方案、光源控制和服务端架构等方面。文中提供了大量具体的代码片段,展示了如何利用C#的强大特性和VisionPro丰富的工具链进行高效开发。例如,通过动态布局代码实现了根据相机数量自动调整界面的功能;采用两种旋转标定方法互为验证确保精度;通过接口化设计使得不同类型的光源控制器可以轻松接入;并使用WCF作为通信协议搭建了高性能的服务端架构。 适合人群:从事工业视觉开发的技术人员,尤其是那些需要频繁面对新项目启动阶段重复劳动的人群。 使用场景及目标:本框架适用于各种涉及多相机协作、复杂标定任务以及需要高度定制化的工业视觉项目。其目的是帮助开发者节省大量的前期准备工作,提高开发效率,降低错误率。 其他说明:尽管该框架已经非常成熟,但在实际应用过程中仍需要注意一些潜在的问题,如VisionPro的线程模型与C#异步特性之间的协调、不同品牌光源控制器的兼容性等。此外,作者还提到未来计划增加云端标定数据同步等功能。
2023年计算机信息系统集成项目管理工程师学习笔记.docx
matlab
part3包含2000张图片,全部6000张。 当前道路养护领域面临几个显著挑战: 1. 数据稀缺性:大多数机构缺乏高质量的标注数据集来训练可靠的缺陷检测模型 2. 类别不平衡:现有数据集往往只关注裂缝等常见缺陷,忽视修补区域和井盖等重要类别 本沥青路面缺陷目标检测数据集提供6,000张精心标注的高质量图像,包含6个关键类别:裂缝、裂缝修补、坑洞、坑洞修补、井盖及其他。 数据集介绍: https://mp.csdn.net/mp_blog/creation/success/147170602
2023年自考自动化制造系统数控铣削.doc
2023年计算机等级考试一级笔试试卷.doc
内容概要:本文详细介绍了使用C#和Xamarin开发一款手机组态应用程序,用于通过WiFi实时监控西门子S7-1200 PLC的运行状态。主要内容涵盖PLC通信配置、登录模块的安全措施、数据交互与缓存、异常处理以及报警推送等功能的实现。文中提供了具体的代码示例和技术细节,如使用S7.Net库进行PLC连接、JSON格式缓存PLC状态、SHA256密码哈希、心跳机制维持WiFi连接稳定性和跨线程UI更新等。 适合人群:具有一定编程基础,尤其是熟悉C#和Xamarin框架的研发人员,以及从事工业自动化领域的工程师。 使用场景及目标:适用于希望将工业控制系统集成到移动设备的应用开发者,旨在提高工业现场监控效率,减少维护成本。具体目标包括实现远程监控、提升系统的可靠性和安全性,以及改善用户体验。 其他说明:文中提到多个实用技巧和常见问题解决方案,如WiFi配置、安卓系统权限设置、不同品牌手机的后台服务限制处理等。同时强调了工业无线通信不仅涉及编程技能,还需要掌握一定的网络基础知识。
内容概要:本文详细介绍了基于MATLAB/Simulink构建VIENNA整流器仿真模型的过程,重点探讨了电压电流双环控制策略及其参数调整方法。作者通过反复试验确定了电压外环PI控制器的最佳参数配置,并解决了电流内环滞环控制带来的开关频率和电感啸叫等问题。同时,文中还涉及了坐标变换、锁相环、电容选型等关键技术细节,确保直流母线电压纹波控制在0.5%以内,实现了高效稳定的整流效果。 适合人群:从事电力电子研究的技术人员、高校相关专业师生以及对VIENNA整流器感兴趣的工程师。 使用场景及目标:适用于需要深入了解VIENNA整流器工作原理及其实现方式的研究项目;帮助读者掌握如何利用MATLAB/Simulink进行复杂电力电子系统的建模仿真;提供了一套完整的参数调试思路和技术解决方案。 其他说明:文中不仅提供了详细的数学公式和代码片段,还有丰富的实验数据支持,使得理论与实践紧密结合。此外,作者分享了许多宝贵的实战经验,如抗饱和处理、死区时间设置等,有助于提高读者的实际操作能力。
内容概要:本文详细介绍了基于STM32L073和SX1278的LoRaWAN工业温控器的量产代码设计与实现。主要内容涵盖硬件架构与基础配置、IAP固件升级、温湿度采集与滤波、继电器控制与工况检测、LoRaWAN通信等方面。文中不仅提供了关键代码示例,还分享了许多实战经验和技术难点解决方案,如低功耗优化、抗干扰措施、数据传输可靠性等。 适合人群:嵌入式系统开发者、物联网工程师、工业自动化技术人员。 使用场景及目标:适用于工业环境中需要远程监控和控制温湿度的场合,旨在提高系统的稳定性和可靠性,确保设备能够在恶劣环境下正常运行。 其他说明:文章强调了工业级设备开发过程中需要注意的各种细节,如硬件选型、软件优化、抗干扰设计等,对于从事类似项目的技术人员具有很高的参考价值。
2023年山东电子商务师考试试题答案.doc
2023年农村信用社考试计算机.doc
1. CompletableFuture 简介 2. CompletableFuture 基础操作 3. CompletableFuture 异常处理 4. CompletableFuture 组合操作 5. CompletableFuture 的超时和取消 6. CompletableFuture 线程池管理 7. CompletableFuture 实际应用场景
matlab
MATLAB(Matrix Laboratory)是一种广泛应用于科学计算、工程分析和数据可视化的高级编程语言和开发环境。它以矩阵操作为核心,具有强大的数值计算能力和丰富的工具箱支持。以下是MATLAB基础学习的指南,帮助你快速入门并掌握其核心功能。 --- ### **1. MATLAB 基础概念** - **工作区(Workspace)**:存储变量的地方,所有定义的变量都会显示在这里。 - **命令窗口(Command Window)**:输入命令并即时执行的地方。 - **脚本文件(Script File)**:包含一系列MATLAB命令的`.m`文件,可以重复运行。 - **函数文件(Function File)**:定义自定义函数的`.m`文件,可以接受输入参数并返回输出结果。 --- ### **2. MATLAB 基础语法** #### **(1) 变量与数据类型** - MATLAB 是动态类型的,无需显式声明变量类型。 - 常用数据类型包括: - 数值类型:`double`(默认)、`int8`、`uint8` 等。 - 字符串:`string` 或字符数组(如 `'hello'`)。 - 逻辑类型:`true` 和 `false`。 - 示例: ```matlab a = 10; % 整数 b = 3.14; % 浮点数 c = 'Hello'; % 字符串 d = true; % 逻辑值 ``` #### **(2) 矩阵与数组** - MATLAB 的核心是矩阵操作,几乎所有数据都以矩阵形式存储。 - 创建矩阵: ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 3x3 矩阵 B = [10, 20,
内容概要:本文详细介绍了使用Simulink进行静止无功发生器(SVG)仿真的全过程。首先,构建了三相两电平拓扑的主电路,特别关注IGBT模块参数设置和直流侧电容的选择。接着,深入探讨了控制环路的设计,特别是锁相环(PLL)模块的参数调整方法及其对系统性能的影响。文中还提供了多个MATLAB代码片段,用于实现电流控制器、PLL算法以及波形分析等功能。此外,文章强调了仿真过程中常见的陷阱和解决方案,如仿真步长选择、PWM脉冲毛刺处理等。最后,通过FFT分析验证了SVG的补偿效果,展示了显著降低谐波畸变率的实际成果。 适合人群:从事电力系统研究和技术开发的专业人士,尤其是熟悉Simulink和MATLAB的工程师。 使用场景及目标:适用于需要深入了解SVG工作原理和仿真技术的研究人员,旨在提高SVG系统的性能和稳定性,确保无功补偿效果最优。 其他说明:文章不仅提供了详细的理论分析,还结合了大量的实践经验,帮助读者更好地理解和解决实际问题。
2023年自考电子商务概论试题及答案新编.docx