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 相关文章推荐
jquery $.ajax入门应用一
Nov 19 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
Jul 21 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
Bootstrap3学习笔记(二)之排版
May 20 Javascript
ionic 3.0+ 项目搭建运行环境的教程
Aug 09 Javascript
React-native桥接Android原生开发详解
Jan 17 Javascript
解决easyui日期时间框ie的兼容的问题
Mar 01 Javascript
Vue cli构建及项目打包以及出现的问题解决
Aug 27 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
Nov 15 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
php UBB 解析实现代码
2011/11/27 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
Nginx实现反向代理
2017/09/20 Servers
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
javascript常用方法汇总
2014/12/02 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python批量解压zip文件的方法
2019/08/20 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
pymysql 开启调试模式的实现
2019/09/24 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
python 基于wx实现音乐播放
2020/11/24 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
HTML文本属性&amp;颜色控制属性的实现
2019/12/17 HTML / CSS
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
房地产销售大学生自我评价分享
2013/11/11 职场文书
家长评语和期望
2014/02/10 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js