JavaScript实现select下拉菜单省份和城市的级联菜单

2023-11-01

使用JavaScript中变量定义省份及对应的城市,应用select标签对象,实现二级级联的下拉菜单选中效果。即在省份下拉菜单中选中一个省份时,在城市下拉菜单中出现该省份对应的城市。

HTML代码:

<div class="choosecity">
    <p>选择所在的省份及城市</p>
    省份:<select  id="province"></select>
    城市:<select  id="city">
    <option value="">---请选择---</option></select>
</div>

JavaScript代码:

1、定义数组存储省份数据和城市数据  注:这里城市的数组下标使用的是省份名称

var provinceArr = ['北京市','天津市','上海市','重庆市','河北省','山西省','辽宁省','吉林省'];
var cityArr = new Array();
    cityArr['北京市'] = ['北京市'];
    cityArr['天津市'] = ['天津市'];
    cityArr['上海市'] = ['上海市'];
    cityArr['重庆市'] = ['重庆市'];
    cityArr['河北省'] = ['石家庄市','张家口市','承德市','唐山市','秦皇岛市','廊坊市','保定市','沧州市','衡水市','邢台市','邯郸市'];
    cityArr['山西省'] = ['太原市','大同市','朔州市','忻州市','阳泉市','晋中市','吕梁市','长治市','临汾市','晋城市','运城市'];
    cityArr['辽宁省'] = ['沈阳市','铁岭市','阜新市','抚顺市','朝阳市','本溪市','辽阳市','鞍山市','盘锦市','锦州市','葫芦岛市','营口市','丹东市','大连市'];
    cityArr['吉林省'] = ['长春市','白城市','松原市','吉林市','四平市','辽源市','白山市','通化市'];

2、定义函数:显示省份   注:这里使用立即执行函数 页面加载时就显示数据

(function displayProvince(){
    // 使用循环将省份显示到下拉菜单中
    for(let i = 0;i<provinceArr.length;i++){
        // 获取省份select控件
        let province = document.querySelector('#province');
        // 注册onchange事件:当省份发生改变 后面的城市也跟着变化
        province.onchange = displayCity;
        // 创建option节点
        let option = document.createElement('option');
        // 创建文本节点
        let pro = document.createTextNode(provinceArr[i]);
        // 将文本节点添加到option中
        option.appendChild(pro);
        // 将option追加到select中
        province.appendChild(option);
    }
    // 调用显示城市函数,让该方法也立即执行
    displayCity();
})()

3、定义函数:显示城市

function displayCity(){
    // 获取城市select控件
    let city = document.querySelector('#city');
    // 先将option数据清空
    city.options.length = 1;
    // 获取省份中的value值
    let provice = document.querySelector('#province').value;
    // 循环添加省份所对应的城市
    for(let i = 0;i<cityArr[provice].length;i++){
        // 创建option节点
        let option = document.createElement('option');
        // 创建文本节点
        let citytxt = document.createTextNode(cityArr[provice][i]);
        // 将文本节点添加到option中
        option.appendChild(citytxt);
        // 将option追加到select中
        city.appendChild(option);
    }
}

最终实现效果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript实现select下拉菜单省份和城市的级联菜单 的相关文章

  • 如何将 div (或任何元素)覆盖在表格行 (tr) 上?

    我想在恰好有多个列的表行 tr 标记 上覆盖一个 div 或任何可以使用的元素 我尝试了几种方法 似乎都不起作用 我在下面发布了我当前的代码 我确实得到了一个覆盖 但不是直接覆盖在该行上 我尝试将覆盖顶部设置为 div Bottom css
  • 如何在react-select v2中创建optgroup?

    我想在我的反应选择列表中包含 optgroups 但它似乎没有记录在任何地方 我有以下结构 是从评论中提取的https github com JedWatson react select issues 59 https github com
  • 在 HTML5 中使用 JS 创建内联 SVG

    我正在使用本地 HTML5 文件 它有在顶部 我在里面放了这样的东西
  • 执行页面的 javascript 后保存页面的 html 输出

    我正在尝试抓取一个网站 它首先加载 html js 使用js修改表单输入字段 然后使用POST 如何获得 POSTed 页面的最终 html 输出 我尝试使用 phantomjs 执行此操作 但它似乎只有渲染图像文件的选项 谷歌搜索表明这应
  • Amcharts 图表 - 图表列到自定义 URL 的超链接以在新选项卡/窗口中打开

    我正在尝试制作一个 amcharts 图表 其中的列链接到自定义网址 并希望网址在新选项卡 窗口中打开 我尝试将此代码添加到图形对象中 但它不起作用 它在同一选项卡 窗口中打开链接 listeners event clickItem met
  • Disqus 评论数始终为 0 条评论

    我想我已经按照通用代码的说明设置了 Disqus 问题是它总是说某个帖子有 0 条评论 拿这个帖子来说 http tx0rx0 com retropie and the raspberry pi http tx0rx0 com retrop
  • RequireJS 文本插件和变量连接字符串

    我正在使用 RequireJS 文本插件来加载一些 html 模板 当我将字符串文字传递给 require 函数时 它工作正常 var templateHTML require text templates template name ht
  • 变量前面加双下划线

    我的节点代码中有以下代码片段 var fs require fs fs readdir dirname function err files console log files 为什么变量 dirname 有双下划线 我知道一个下划线是私有
  • SVG 中三角形的圆角

    我正在尝试制作一个具有圆角的三角形 三角形将如下所示 左下角是唯一看起来相当容易制作的角 主要是因为这是一个 90 度的 转弯 该转弯是使用QSVG 中的命令具有以下参数 Q x y height x y height RADIUS从我正在
  • Javascript:通过将路径作为字符串传递给对象来获取对象的深层值[重复]

    这个问题在这里已经有答案了 可能的重复 使用字符串键访问嵌套的 JavaScript 对象 https stackoverflow com questions 6491463 accessing nested javascript obje
  • FormData 中的 Blob 为 null

    我正在尝试通过远程 API 通过 ajax 在 android 中发送创建的照片 我在用着相机图片背景 https github com an rahulpandey cordova plugin camerapicturebackgrou
  • 将数组中的所有元素相乘

    我在这里找不到我真正想要的例子 我想将所有数组元素相乘 因此如果数组包含 1 2 3 总和将为 123 6 到目前为止 我已经得到了这段代码 但它返回未定义 function multiply array var sum 1 for var
  • 如何正确删除动画集中引用的 Raphael SVG 元素?

    我有一组动画 Raphael SVG 元素 我正在通过用户发起的 ajax 调用添加新元素并删除旧元素 我 set push 新元素 但因为我需要删除的元素通常不是集合中的最后一个元素 所以我使用 element remove 而不是 se
  • 当表格在 IE 中获得焦点时,表格滚动条会向上跳跃

    问题 我有一个table有包装的div with overflow y auto 一旦table获得焦点 滚动条向上跳 我怎样才能防止这种情况发生 我经历过这种行为IE9 不在 Chrome 中 请注意 我已添加tabindex到桌子上 以
  • 大型应用的回流/布局性能

    我正在使用 GWT 构建一个 HTML 应用程序 其性能总体上是正确的 有时 它会加载 DOM 中的许多对象 并且应用程序会变得很慢 我使用 Chrome 开发者工具分析器来查看时间花在哪里 在 Chrome 下 一旦应用程序被编译 即没有
  • 表单序列化javascript(无框架)

    想知道 javascript 中是否有一个没有 jquery 或任何框架的函数可以让我序列化表单并访问序列化版本 2023 年更新 Use FormData https developer mozilla org en US docs We
  • Promise 构造函数回调的主体何时执行?

    假设我有以下代码构造一个Promise function doSomethingAsynchronous return new Promise resolve gt const result doSomeWork setTimeout gt
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 将 Angular Web 组件 EventEmitter 监听到 javascript

    我在以下工具的帮助下创建了一个小型网络组件本文 https medium com IMM9O web components with angular d0205c9db08f使用角度元素 其中包括 Input and Output 我能够将
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac

随机推荐

  • 获取OpenHarmony源码:从DevEco Marketplace获取(2)

    引言 OpenHarmony源码的获取方式有三种 从gitee GitHub等基于git的代码托管平台获取 从华为的DevEco Marketplace网站获取 从镜像站点获取 本文介绍如何在Ubuntu版本的DevEco Device T
  • 大数据知识目录

    第一阶段 安装虚拟机 第二阶段 Linux操作系统 第三阶段 zookeeper分布式协调服务框架 第四阶段 Hadoop分布式文件系统HDFS 第五阶段 Hadoop分布式计算Mapreduce和资源管理 第六阶段 数据仓库Hive 第七
  • 对于uts namespace共享的测试

    前言 单单以下列命令运行虽然是root 还不行 我们需要加 privileged 不然会报 hostname you must be root to change the host name docker run it uts host u
  • python写程序计算无穷级数_圆周率 π 展开 为 无穷级数

    圆周率 展开 为 无穷级数 其实 很简单 如图 可以用 黄色小三角形 和 橙色小三角形 以及 依此类推 下去 的 无数个 小三角形 来 逼近 圆面积 把 这个 无限逼近 的 圆面积 称为 S 因为 圆面积 r 所以 有 S r S r 即
  • 【VC++类型转换】CString和System::String类型的转换

    1 CString 转换为System String类型 这里的CString是指MFC的CString System String为CLR中的字符串类 我认为最简单的做法是 CString text System String str1
  • 【HBZ分享】Mysql的InnoDB原理

    没有配置主键时Mysql的InnoDB是如何做的 Mysql会使用自带的rowid作为主键 InnoDB的底层数据结构是什么 B Tree BTree的特点 MyISAM 非聚集索引 即 索引 和 对应数据 是分开的两个文件 找到对应数据后
  • 两年来主要工作框架图

    两年来主要工作框架图 包含了从MES到SAP的全程流程 从收集一线数据开始到汇总历史数据 归档 直到最后的BI DW分析展现 主要工作流程图
  • Java中正则表达式的使用

    在Java中 我们为了查找某个给定字符串中是否有需要查找的某个字符或者子字串 或者对字符串进行分割 或者对字符串一些字符进行替换 删除 一般会通过if else for 的配合使用来实现这些功能 如下所示 Java代码 public cla
  • 以互联网思维做好客户端软件

    加入爱奇艺的时间不长 但我感受到的震撼却不小 在外企打拼了十几个春秋 今年终于有机会进入一家国内顶尖的互联网企业 真真切切地有一番不太一样的体验 不过 我今天并不想说在外企工作与国内企业的差别 目前 我负责 爱奇艺PPS影音 PC客户端软件
  • 2种方法简单爬取JS加载的动态数据

    参考原文 http www cnblogs com buzhizhitong p 5697683 html 需要爬取的网站数据 http gkcx eol cn soudaxue queryProvince html page 1 一共是1
  • webdriver相关API

    webdriver相关API 一 元素的定位 二 操作测试对象 三 添加等待 四 打印信息 五 浏览器的操作 六 键盘事件 七 鼠标事件 一 元素的定位 webdriver提供的常用的对象定位方法 id 页面内 id 唯一 name cla
  • vector C++ 详细用法

    原文地址 http blog csdn net edify article details 4035243 vector是C 标准模板库中的部分内容 它是一个多功能的 能够操作多种数据结构和算法的模板类和函数库 vector之所以被认为是一
  • 压测注意事项

    文章目录 常用术语 流程及注意事项 常用工具 ab 命令 Jmeter 声明这里只是面向RD的 简单的 为摸清服务性能相关的自压测笔记 正规压测请向QA同学请教 常用术语 QPS 每秒请求数 也是吞吐量 内存使用情况 CPU使用情况 针对计
  • 企业级镜像仓库Harbor的部署及使用

    文章目录 一 环境准备 二 下载 三 HTTPS证书 1 生成证书颁发机构证书 2 生成服务器证书 3 提供证书给Harbor和Docker 四 Harbor配置文件 五 安装 六 Web页面 七 上传及拉取镜像 1 配置 2 上传镜像 3
  • ubuntu彻底卸载ffmpeg 与安装

    卸载 卸载旧的FFmpeg 输入以下指令 sudo apt get purge remove ffmpeg sudo apt get purge autoremove 当时试了一下 并没有成功 命令行输入 ffmpeg version 当时
  • 计算机视觉与深度学习-经典网络解析-GoogLeNet-[北邮鲁鹏]

    这里写目录标题 GoogLeNet 参考 GoogLeNet模型结构 创新点 Inception结构 它能保留输入信号中的更多特征信息 去掉了AlexNet的前两个全连接层 并采用了平均池化 引入了辅助分类器 GoogLeNet GoogL
  • 从Cookie 中取出来对特殊字符的转换

    页面存入Cookie中的值含有特殊字符 但所传的值中包含一些特殊字符比如 Cookie中是无法对特殊字符直接承载的 所以在存入Cookie时 将其转换为unicode编码 document cookie key escape value 但
  • Vue性能优化

    一 Object freeze 如果我们已知该数据是不会改变的 就不需要Vue将其设置成响应式的了 利用 Object freeze 该方法可以冻结一个对象 使该对象不能被修改 Vue就不能够为对象添加 setter getter等数据劫持
  • char str[]与char *str的区别

    在C语言中 对字符串的操作主要有两种方式 一是使用字符数组 char str 二是使用字符指针 那么二者有什么区别呢 下面将分述二者的使用 最后进行比较 一 字符数组 使用char str 定义一个字符数组str 中括号内可以写上数字表示数
  • JavaScript实现select下拉菜单省份和城市的级联菜单

    使用JavaScript中变量定义省份及对应的城市 应用select标签对象 实现二级级联的下拉菜单选中效果 即在省份下拉菜单中选中一个省份时 在城市下拉菜单中出现该省份对应的城市 HTML代码 div class choosecity p