<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三级联动</title>
<script src="../js/jquery-3.3.1.min.js"></script>
<script>
$(function () { //入口函数
//获得城市对象的下拉框
var $city = $("#city"); var $xian = $("#xian"); var provinces = ["河南省","安徽省"]; var cities = [
["河南市1", "河南市2"],
["安徽市1", "安徽市2"]
];
var xians = [ //三维数组
[["河南县1", "河南县11", "河南县111"], ["河南县2", "河南县22", "河南县222"], ["无", "无"]],
[["安徽县1", "安徽县11", "安徽县111"], ["安徽县2", "安徽县22", "安徽县222"]] ]; //遍历显示出省份
$.each(provinces, function (i, n) { $("#province").append("<option name='city'>" + n + "</option>"); }); //如果省改变 $("#province").change(function () { $city.get(0).length = 1;
$xian.get(0).length = 1;
//清空城市列表按钮 , 只保留第一个 <option value="0" name="city">请选择</option>
//清空县列表按钮 , 只保留第一个 <option value="0" name="city">请选择</option> var a = $("#province option:selected").index() - 1;
$.each(cities, function (i, n) { //n是城市的cites数组的一个
if (a == i) { //如果省的value值等于citys数组的索引, 就遍历这个城市数组中的这个
$(n).each(function (j, m) {
//创建对象,并且添加到城市下拉框中
$city.append("<option name='city'>" + m + "</option>"); });
}
}); }); //如果市改变
$("#city").change(function () { var c = $("#city option:selected").index() - 1; //获得市的索引
var p = $("#province option:selected").index() - 1; //获得省的索引
$xian.get(0).length = 1;
//清空城市按钮 , 只保留第一个 <option value="0" name="city">请选择</option> $.each(xians, function (i, n) { //先通过省的索引遍历县的三维数组获的二维数组 if (p == i) { //如果省的索引等于县的二维数组索引,
//n就是那个三维数组中的二维数组
$(n).each(function (j, m) { //在遍历这个二维数组
if (c == j) { //下面遍历一维数组
$(m).each(function (x, p) { //创建对象,并且添加到城市下拉框中
$xian.append("<option name='city'>" + p + "</option>"); });
} });
}
});
});
}); </script> </head>
<body> 省份:<select id="province">
<option value="0" name="city">请选择</option>
</select>
城市:<select id="city">
<option value="0" name="city">请选择</option>
</select>
县:<select id="xian">
<option value="0" name="city">请选择</option>
</select>
</body>
</html> //自己导入一个JS库复制代码就能直接运行

分析 :

//省和市都有对应的索引, 遍历三维数组时根据  [ 省索引 ] [ 市索引 ]找到对应三维数据里面对应的数据

//所以你自己自定义数据的时候 , 省市县的索引也要一一对应!

												

JQuerys实现三级省市联动的更多相关文章

  1. VUE2+elementUI前端实现 三级省市联动select

    html: <el-form-item label="选择地区:"> <el-select size="small" style=" ...

  2. 省市联动_简单的Demo,适用于各种二级菜单联动

    最近搞了一个功能,是查询页面需要用到二级菜单联动,获取到选中的属性value传入到后台. 平常都是用AJAX或者JQuery ,通过XML或者JSON的方式,这样的话需要调用数据库,像典型得到省市联动 ...

  3. js实现的省市联动

    最近工作,要用到省市联动的功能.网上搜了一下,发现有很多这样的例子,看了不少实例,把觉得写得不错的代码穿上来,好给大家分享一下. <!DOCTYPE html PUBLIC "-//W ...

  4. jquery省市联动,根据公司需求而写

    //author:guan //2015-05-25 //省市联动 //实用说明,页面引用如下js //<script src="../js/jquery-1.6.3.min.js&q ...

  5. Json 基于jQuery+JSON的省市联动效果

    helloweba.com 作者:月光光 时间:2012-09-12 21:57 标签: jQuery  JSON  Ajax  省市联动     省市区联动下拉效果在WEB中应用非常广泛,尤其在一些 ...

  6. AJAX案例四:省市联动

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  7. Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)

    我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤 ...

  8. [JS]以下是JS省市联动菜单代码

    以下是JS省市联动菜单代码: 代码一: <html> <head> <title></title> <script language=" ...

  9. 通过Javascript数组设计一个省市联动菜单

    通过Javascript数组设计一个省市联动菜单 使用Option内置类来完成下拉选项的创建 2.使用定时器实现一个时钟程序 3.使用PHP+JSON完成语音验证码 网址:http://yuyin.b ...

随机推荐

  1. [C5W3] Sequence Models - Sequence models & Attention mechanism

    第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 基础模型(Basic Models) 在这一周,你将会学习 seq2seq(sequ ...

  2. 05_javaSE面试题:成员变量和局部变量

    题目 /** * 类变量:static修饰的 * 实例变量:不是static修饰的 * * 局部变量:栈 * 实例变量:堆 * 类变量:方法区 * @author kevin * @date 2019 ...

  3. 2019.10.02模拟赛T3

    题目大意: 设$S(n,m)$为第二类斯特林数,$F_i$表示斐波那契数列第$i$项. 给定$n,R,K$,求$\sum\limits_{i=1}^{n}(\sum\limits_{m=1}^{R}F ...

  4. CF1269A Equation

    题目链接 题意 要找两个合数,使他们两个的差为\(n\),\(n\)为题目给出的数 思路 我们可以枚举减数\(now\),判断一下是不是质数,如果是质数就让\(now++\),然后用一个数\(tot\ ...

  5. x86-64数据格式、通用寄存器与操作数格式

    x86-64数据格式.通用寄存器与操作数格式 数据格式 ​ Intel用术语"字(word)"表示16位数据类型,32位为"双字(double words)", ...

  6. [转]在.NET Core 2.x中将多个强类型设置实例与命名选项一起使用

    自1.0版之前,ASP.NET Core已使用“ 选项”模式配置强类型设置对象.从那时起,该功能获得了更多功能.例如,引入了ASP.NET Core 1.1 IOptionsSnapshot,它允许您 ...

  7. .Net Core技术研究-WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

  8. docker安装完报错:Failed to start docker.service: Unit docker.service is masked

    执行 systemctl start docker 报错 Failed to start docker.service: Unit docker.service is masked. 解决 syste ...

  9. C#关闭多线程程序

    Process[] processes = System.Diagnostics.Process.GetProcesses(); //获得所有进程 foreach (Process p in proc ...

  10. vue-父组件和路由

    父子组件之间传值 <div id="app"> <com1 v-bind:parentmsg="msg" @func="getMsg ...