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限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
JavaScript框架是什么?怎样才能叫做框架?
Jul 01 Javascript
Js获取图片原始宽高的实现代码
May 17 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
解决vue多个路由共用一个页面的问题
Mar 12 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
JS document对象简单用法完整示例
Jan 14 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
js实现百度登录窗口拖拽效果
Mar 19 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 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
PHP类继承 extends使用介绍
2014/01/14 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
关于环保的标语
2014/06/13 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
2014年环保工作总结
2014/11/26 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
mysql的数据压缩性能对比详情
2021/11/07 MySQL
JavaScript实现栈结构详细过程
2021/12/06 Javascript
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server