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_08_函数对象
Oct 15 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
jquery显示隐藏元素的实现代码
May 19 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
Jul 07 Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
mongoose中利用populate处理嵌套的方法
May 26 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
Sep 12 Javascript
详解express使用vue-router的history踩坑
Jun 05 Javascript
javascript实现扫雷简易版
Aug 18 Javascript
JavaScript实现队列结构过程
Dec 06 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
ip签名探针
2006/10/09 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
php实现分页显示
2015/11/03 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
javascript 继承实现方法
2009/08/26 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
jquery自定义表格样式
2015/11/23 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
Python中zip()函数用法实例教程
2014/07/31 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
网上开店必备创业计划书
2014/01/26 职场文书
科研课题实施方案
2014/03/18 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
欢迎家长标语
2014/10/08 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书