使用JavaScript数组实现省份和城市的级联菜单

简介: 使用JavaScript数组实现省份和城市的级联菜单

需求说明:

使用数组实现省份和城市的级联菜单。具体要求如下


在页面中添加城市时,根据选择的省份,动态地添加该省份的城市

页面加载完毕后,第一个列表框填充“两湖两广”(湖北、湖南、广东和广西)省份,第二个列表框填充第一个省份的所有城市

当选择省份时,如“湖北省”,第二个下拉列表框先清除选项,然后再填充“湖北省”的所有城市


57.png58.png


实现思路:


在脚本中,声明一个省份数组和一个使用文字作为数组元素下标的全局数组变量,用来存储省份和城市

声明函数initProvince(),在第一个列表框中填充所有的省份名称

声明函数fillCity(),把在第一个列表框中选择的省份所对应的城市填充到第二个列表框中

在window 的onload 事件中绑定initProvince() 方法和fillCity() 方法 给第一个列表框<select> 标签的onchange 事件绑定fillCity() 方法


实现代码:


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      var provinces=new Array('湖北省','湖南省','广东省','广西省');
      var citys=new Array();
      citys['湖北省']=['武汉','黄石','宜昌','襄阳','孝感','黄冈'];
      citys['湖南省']=['长沙','衡阳','岳阳','常德','张家界','怀化'];
      citys['广东省']=['广州','深圳','珠海','汕头','佛山','江门'];
      citys['广西省']=['南宁','桂林','北海','玉林','百色','贺州'];
      function initProvince(){
        var province=document.getElementById("province");
        for (var i=0;i<provinces.length;i++) {
          var option=document.createElement("option");
          option.text=provinces[i];
          option.value=provinces[i];
          province.options.add(option);
        }
      }
      function fillCity(){
        var city=document.getElementById("city");
        city.options.length=0;
        var province=document.getElementById("province").value;
        console.log(province);
        console.log(citys[province]);
        for (var i=0;i<citys[province].length;i++){
          var option=document.createElement("option");
          option.text=citys[province][i];
          option.value=citys[province][i];
          city.options.add(option);
        }
      }
      window.onload=function(){
        initProvince();
        fillCity();
      }
    </script>
    <h2>请选择城市<br />
    省份:<select id="province" onchange="fillCity()"></select>
    城市:<select id="city"></select>
    </h2>
  </body>
</html>
相关文章
|
2月前
|
自然语言处理 前端开发 JavaScript
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
44 2
|
2月前
|
JavaScript 前端开发 测试技术
JS都有哪些操作数组的方法
JS都有哪些操作数组的方法
37 3
|
2月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
49 4
|
2月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
52 1
|
2月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
32 5
|
2月前
|
JavaScript 前端开发 索引
探索JavaScript数组:基础
探索JavaScript数组:基础
21 3
|
2月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
76 1
|
2月前
|
JavaScript 前端开发
如何在JS中声明一个数组
如何在JS中声明一个数组
31 0
|
2月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
35 3
|
3月前
|
存储 JSON JavaScript
JavaScript帮我编写快递自动分拣的代码,区分省份市区县城乡镇
JavaScript帮我编写快递自动分拣的代码,区分省份市区县城乡镇在JavaScript中编写一个用于快递自动分拣的代码,区分省份、市区、县、城乡镇,通常意味着你需要一个数据结构来存储这些地理区域的信息,并编写逻辑来根据快递地址中的信息将其分配到正确的分类中。 这里,我将提供一个简化的示例,说明如何使用JavaScript对象和函数来实现这一功能。请注意,这个示例是高度简化的,并且假设你已经有了某种方式(如正则表达式或API调用)来从快递地址中提取省份、市区、县等信息。 ----------------------------------- ©著作权归作者所有:来自51CTO博客作者goS