JavaScript实现城市级联菜单的两种实现方案

作者:函数茶馆时间:2026-10-22 05:00:54浏览:193

本文介绍了在JavaScript中实现城市级联菜单的两种常见方式。第一种方法利用switch语句根据省份ID进行分支判断,动态更新城市列表;第二种方法通过定义对象数组存储省份与城市的映射关系,利用if条件判断提取对应数据。两种方案均涉及DOM元素的获取与选项的动态增删,适用于基础的前端交互场景。

城市级联菜单实现概述

本文分享了使用JavaScript实现城市级联菜单的具体代码示例,供读者参考。

基于Switch语句的判断方法

第一种实现思路是采用switch语句进行条件判断。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript">
    function changeCity() {

      var x=['牛奶','豆浆','油条'];
      console.log(x.join(','));

      var y=[33,22,66,12];
      console.log(y.sort());


      //如果选择的是河南 在城市中: 洛阳 ,驻马店
      //如果选择的是河北 在城市中: 石家庄 ,保定
      var province = document.getElementById('selProvince');
      var city = document.getElementById('selCity');
      //在添加城市前,先清空上一次添加的城市
      city.length = 1;
      switch (province.value) {
        case '河南省':
          var op1 = new Option('洛阳', '洛阳');
          var op2 = new Option('驻马店', '驻马店');
          city.add(op1, null);
          city.add(op2, null);
          break;
        case '河北省':
          var op1 = new Option('石家庄', '石家庄');
          var op2 = new Option('保定', '保定');
          city.add(op1, null);
          city.add(op2, null);
          break;
      }
    }
  </script>
</head>
<body>
<form action="" name="myform">
  <select id="selProvince" onchange="changeCity( )">
    <option>--选择省份--</option>
    <option value="河南省">河南省</option>
    <option value="河北省">河北省</option>
  </select>
  <select id="selCity">
    <option>--选择城市--</option>
  </select>
</form>
</body>
</html>

基于If语句的判断方法

第二种实现思路则是利用if语句进行逻辑判断。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>
    function chagecity() {
      var citylist = [];
      citylist['四川省'] = ['成都市', '郫都区'];
      citylist['广东省'] = ['深圳市', '东莞市'];
      var provinceV = document.getElementById("province").value;
      var city = document.getElementById("city");
      city.length = 1; //清除当前city中的选项
//        for (var i in citylist){
//          if (i == provinceV){
//            for (var j in citylist[i]){
//              citylist.add(new Option(citylist[i][j],citylist[i][j]),null);
//            }
//          }
//        }
      for (var i in citylist) {
        if (i == provinceV) {//判断i是不是等于province中的值
          for (var j in citylist[i]) {//遍历citylist数组
            var op = new Option(citylist[i][j], citylist[i][j]);//把定义好的数据添加到city中
            city.add(op, null);
          }
        }
      }

    }
  </script>
</head>
<body>
<form action="">
  <select name="" id="province" onchange="chagecity()">
    <option value="四川省">四川</option>
    <option value="广东省">广东</option>
  </select>
  <select id="city">
    <option value="选择城市">选择城市</option>
  </select>
</form>
</body>
</html>

以上内容为本文的全部分享,希望能为读者的学习提供一定帮助,同时也欢迎读者继续支持本站。

作者最新文章