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的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
Nov 06 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
Jan 08 Javascript
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
Oct 26 Javascript
js 提取某()特殊字符串长度的实例
Dec 06 Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
Aug 20 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 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
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
JDK安装目录下有哪些内容
2014/08/25 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
单位工作证明格式模板
2014/10/04 职场文书
欢迎家长标语
2014/10/08 职场文书
汇报材料怎么写
2014/12/30 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android