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 相关文章推荐
javascript 遍历验证所有文本框的值
Aug 27 Javascript
jQuery帮助之筛选查找 children([expr])
Jan 31 Javascript
jQuery实用基础超详细介绍
Apr 11 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
jQuery插件开发的五种形态小结
Mar 04 Javascript
微信小程序开发实战教程之手势解锁
Nov 18 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
详解jQuery中的prop()使用方法
Jan 05 jQuery
借助云开发实现小程序短信验证码的发送
Jan 06 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
Jul 17 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连接mssql数据库的几种方法
2013/02/21 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
js单例模式的两种方案
2013/10/22 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
Python之多进程与多线程的使用
2021/02/23 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
网络事业创业计划书范文
2014/01/09 职场文书
药品采购员岗位职责
2014/02/08 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
结对共建协议书
2014/08/20 职场文书
小学元宵节活动总结
2015/02/06 职场文书
社区文明倡议书
2015/04/28 职场文书
2015年调度员工作总结
2015/04/30 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技