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获取Form表单中被选中的radio值
Aug 09 Javascript
了解Javascript的模块化开发
Mar 02 Javascript
javascript实现简单的省市区三级联动
May 14 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
javascript检测flash插件是否被禁用的方法
Jan 14 Javascript
vue组件生命周期详解
Nov 07 Javascript
JS合并两个数组的3种方法详解
Oct 24 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 Javascript
怎么理解wx.navigateTo的events参数使用详情
May 18 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
Vue全家桶入门基础教程
May 14 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
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获取数组长度的方法(有实例)
2013/10/27 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
js实现二级导航功能
2017/03/03 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
Python中super()函数简介及用法分享
2016/07/11 Python
Python WSGI的深入理解
2018/08/01 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
毕业生的自我鉴定
2013/10/29 职场文书
房地产销售员的自我评价分享
2013/12/04 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
水电工程师岗位职责
2015/02/13 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
中学总务处工作总结
2015/08/12 职场文书
检讨书之工作不认真
2019/08/14 职场文书
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers