JavaScript实现三级联动效果


Posted in Javascript onJuly 15, 2017

三级联动:就是平时网页上需要选择的省市县对应位置的下拉栏模块,当选择好省位置后市的下拉栏更新为已选省的,县类似。

JavaScript实现三级联动效果

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>三级联动</title>
</head>
<body>
<select id="sheng">
  <option value="">-请选择-</option><!--先创建三个下拉栏,分别对应 省 市 县-->
</select>

<select id="shi">
  <option value="">-请选择-</option>
</select>

<select id="xian">
  <option value="">-请选择-</option>
</select>
<script>
  var osheng=document.getElementById("sheng");
  var oshi=document.getElementById("shi");
  var oxian=document.getElementById("xian");

  var arr_sheng=["陕西省","云南省","四川省","山西省"];<!--创建一个一维数组,存入省的值-->

  var arr_shi=[<!--创建一个二维数组,最外层每一个元素对应省-->
    ["西安市","咸阳市","宝鸡市","渭南市"],<!--数组中的第一个元素内又定义一个数组存的市的值-->
    ["昆明市","大理市","丽江市","西双版纳市"],
    ["乐山市","成都市","大同市","高新市"],
    ["太原市","屏显市","乐宝市","李伟市"]
  ];

  var arr_xian=[<!--创建一个三维数组,最外层每一个元素(对应省)-->
      [<!--数组中定义四个数组(对应市)-->
        ["西安县1","西安县2"],["咸阳市1","咸阳市2"],["宝鸡市1","宝鸡市2"],["渭南市1","渭南市2"]
      ],<!--数组中定义两个元素(对应县)-->
      [
        ["昆明市1","昆明市2"],["大理市1","大理市2"],["丽江市1","丽江市2"],["西双版纳市1","西双版纳市2"]
      ],
      [
        ["乐山市1","乐山市2"],["成都市1","成都市2"],["大同市1","大同市2"],["高新市1","高新市2"]
      ],
      [
        ["太原市1","太原市2"],["屏显市1","屏显市2"],["乐宝市1","乐宝市2"],["李伟市1","李伟市2"]
      ]
  ];

  var quanju_arr;//创建一个全局对象,用于存储一个中间数组

  function input_arr(arr,event){//封装一个函数,用于向下拉栏中添加元素
    for(var i=0;i<arr.length;i++){//下拉栏内的元素来源于数组中的元素,遍历数组
      var option=new Option(arr[i],i);//创建Option对象(这个O要大写),存入值
      event.appendChild(option);//把option添加到event对象的末尾
    }
  }

  input_arr(arr_sheng,osheng);//调用,给省下拉栏添元素

  osheng.onchange= function () {//给下拉栏绑定事件(当下拉栏元素改变时执行)
    oshi.options.length=1;//当省下拉栏改变时,清空市的下拉栏内元素
    oxian.options.length=1;//当省下拉栏改变时,清空县的下拉栏内元素
    var index=this.value;//每一个option标签都有一个value值索引,获取索引,用于数组中元素的选择
    var arr_shi_next=arr_shi[index];//获取当前选择省的市元素并赋给一个数组
    quanju_arr=arr_xian[index];//获取当前选择省中市的县元素并赋给定义的中间数组
    input_arr(arr_shi_next,oshi);//调用,给市下拉栏添元素
  }

  oshi.onchange= function () {
    oxian.options.length=1;
    var index=this.value;
    var arr_xian_next=quanju_arr[index];
    input_arr(arr_xian_next,oxian);//调用,给县下拉栏添元素
  }
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 入门实例1
Jun 25 Javascript
js null undefined 空区别说明
Jun 13 Javascript
jquery异步循环获取功能实现代码
Sep 19 Javascript
js字符串的各种格式的转换 ToString,Format
Aug 08 Javascript
JavaScript 用Node.js写Shell脚本[译]
Sep 20 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
解析使用JS 清空File控件的路径值
Jul 08 Javascript
简介JavaScript中setUTCSeconds()方法的使用
Jun 12 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
详解webpack模块加载器兼打包工具
Sep 11 Javascript
JS基础之逻辑结构与循环操作示例
Jan 19 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 Javascript
BackBone及其实例探究_动力节点Java学院整理
Jul 14 #Javascript
backbone简介_动力节点Java学院整理
Jul 14 #Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 #Javascript
easyui简介_动力节点Java学院整理
Jul 14 #Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 #Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 #Javascript
简单实现js轮播图效果
Jul 14 #Javascript
You might like
Protoss兵种对照表
2020/03/14 星际争霸
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
php过滤表单提交的html等危险代码
2014/11/03 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
基于python实现微信模板消息
2015/12/21 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
Django多数据库联用实现方法解析
2020/11/12 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
UNIX命令速查表
2012/03/10 面试题
学生感冒英文请假条
2014/02/04 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
教师工作能力自我评价
2015/03/04 职场文书
2015年采购部工作总结
2015/04/23 职场文书
婚礼父母致辞
2015/07/28 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
pytorch 使用半精度模型部署的操作
2021/05/24 Python