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 相关文章推荐
javascript学习随笔(使用window和frame)的技巧
Mar 08 Javascript
图片自动缩小的js代码,用以防止图片撑破页面
Mar 12 Javascript
js 处理URL实用技巧
Nov 23 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
Mar 25 Javascript
优化innerHTML操作(提高代码执行效率)
Aug 20 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 Javascript
js中关于Blob对象的介绍与使用
Nov 29 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
javascript实现数独解法
2015/03/14 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
python中函数总结之装饰器闭包详解
2016/06/12 Python
python下载图片实现方法(超简单)
2017/07/21 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
医院总经理岗位职责
2014/02/04 职场文书
2014年新生军训方案
2014/05/01 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
唐山大地震观后感
2015/06/05 职场文书
2016年元旦致辞
2015/08/01 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python