JavaScript实现的级联算法示例【省市二级联动功能】


Posted in Javascript onDecember 25, 2018

本文实例讲述了JavaScript实现的级联算法。分享给大家供大家参考,具体如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>LinkDemo</title>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </script>
    <script type="text/javascript">
      var shengshiString = "1_山东省-11_德州市+12_青岛市+13_济南市~2_河北省-21_邯郸市*211_临漳县/212_磁县+22_石家庄市*221_定县/222_宁县+23_保定市";
      $(document).ready(function(){
        init();
      });
      function init(){
        var shengArray = shengshiString.split("~");
        for (var i = 0; i < shengArray.length; i++) {
          var sheng = shengArray[i].split("-")[0];
          var shi = shengArray[i].split("-")[1];
          var shengid = sheng.split("_")[0];
          var shengName = sheng.split("_")[1];
          var Newoption = $("<option></option>");
          $(Newoption).val(shengid);
          $(Newoption).text(shengName);
          $("#sheng").append(Newoption);
          if (i == 0) {
            shengchange(shengid);
          }
        }
      }
      function shengchange(shengidparam){
        $("#shi").empty();
        var shengArray = shengshiString.split("~");
        for (var i = 0; i < shengArray.length; i++) {
          var shengString = shengArray[i].split("-")[0];
          var shiString = shengArray[i].split("-")[1];
          var shengId = shengString.split("_")[0];
          if (shengidparam == shengId) {
            var shiArray = shiString.split("+");
            for (var j = 0; j < shiArray.length; j++) {
              var shistring = shiArray[j].split("*")[0];
              var shi = shistring;
              var shiId = shi.split("_")[0];
              var shiName = shi.split("_")[1];
              var Newoption = $("<option></option>");
              $(Newoption).val(shiId);
              $(Newoption).text(shiName);
              $("#shi").append(Newoption);
              if (shiName == "邯郸市" || shiName == "石家庄市") {
                shichange(shiId);
              }
            }
          }
        }
      }
      function shichange(shiidparam){
        $("#xian").empty();
        var shengArray = shengshiString.split("~");
        for (var i = 0; i < shengArray.length; i++) {
          var shengString = shengArray[i].split("-")[0];
          var shiString = shengArray[i].split("-")[1];
          var shengId = shengString.split("_")[0];
          var shiArray = shiString.split("+");
          for (var j = 0; j < shiArray.length; j++) {
            var shistring = shiArray[j].split("*")[0];
            var xianarray = shiArray[j].split("*")[1];
            var shi = shistring;
            var shiId = shi.split("_")[0];
            var shiName = shi.split("_")[1];
            if (shiId == shiidparam) {
              var xian = xianarray.split("/");
              for (var s = 0; s < xian.length; s++) {
                var xianId = xian[s].split("_")[0];
                var xianName = xian[s].split("_")[1];
                var Newoption = $("<option></option>");
                $(Newoption).val(xianId);
                $(Newoption).text(xianName);
                $("#xian").append(Newoption);
              }
            }
          }
        }
      }
    </script>
  </head>
  <body>
    <select id="sheng" onchange="shengchange(this.value)">
    </select>
    <select id="shi" onchange="shichange(this.value)">
    </select>
    <select id="xian">
    </select>
  </body>
</html>

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,运行效果如下图所示:

JavaScript实现的级联算法示例【省市二级联动功能】

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
一个关于jqGrid使用的小例子(行按钮)
Nov 04 Javascript
JS代码优化技巧之通俗版(减少js体积)
Dec 23 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
jQuery实现表格展开与折叠的方法
May 04 Javascript
Javascript中setTimeOut和setInterval的定时器用法
Jun 12 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 Javascript
关于AngularJs数据的本地存储详解
Jan 20 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
给vue项目添加ESLint的详细步骤
Sep 29 Javascript
vue 录制视频并压缩视频文件的方法
Jul 27 Javascript
js模拟实现百度搜索
Jun 28 Javascript
详解vuex commit保存数据技巧
Dec 25 #Javascript
bootstrap table实现合并单元格效果
Dec 24 #Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 #Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 #Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
Dec 24 #Javascript
Vue.js组件高级特性实例详解
Dec 24 #Javascript
JavaScript模板引擎原理与用法详解
Dec 24 #Javascript
You might like
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
php的一个简单加密解密代码
2014/01/14 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
C语言面试题
2015/10/30 面试题
捷科时代的软件测试笔试题
2015/11/09 面试题
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
活动总结的格式
2014/05/07 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
八年级英语教学反思
2016/02/15 职场文书
2019个人工作总结
2019/06/21 职场文书
灵能百分百第三季什么时候来?
2022/03/15 日漫