前端jquery技术城市三级联动

##使用基于前端技术技术的jquery实现省市区三级联动

1. 首先在网上找到一个可用的全国地区的js或json文件,这里我用的是js,文件的链接在这:

https://pan.xunlei.com/s/VMiuSCmSOuIfNQQIcoRsBcBPA1,提取码:hhhy

2. 定义三个select标签,引入js文件
<head>
    <meta charset="utf-8">
    <title>中国三级联动</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="area_chs.js"></script>
</head>
<body>
    <select id="province"></select>
    <select id="city"></select>
    <select id="area"></select>
    <button id="btn" onclick='f()'>提交</button>
</body>
3.初始化,使用let定义几个变量
    let province = '';
    let provinceIndex = 0;
    let city = '';
    let cityIndex = 0;
    let area = ''
4.select初始化,使用map方法
    _areaList.map((item, index) => {
        $("#province").append(`<option value=${item.name} index=${index}>${item.name}</option>`);
    })
    _areaList[provinceIndex].city.map((item, index) => {
        $("#city").append(`<option value=${item.name} index=${index}>${item.name}</option>`);
    })
    city = $('#city').val();
    $("#area").empty()
    _areaList[provinceIndex].city[cityIndex].area.map((item, index) => {
        $("#area").append(`<option value=${item}>${item}</option>`);
    })
    area = $('#area').val();
5.当下拉发生改变时,对应的变量值也发送改变
    $('#province').change(function () {
        province = $('#province').val();
        provinceIndex = $('#province')[0].selectedIndex;
        init()
    })
    $('#city').change(function () {
        city = $('#city').val();
        cityIndex = $('#city')[0].selectedIndex;
        setArea(provinceIndex, cityIndex);
    })
    $('#area').change(function () {
        area = $('#area').val()
    })

6.最后使用形式如下:
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>中国三级联动</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="area_chs.js"></script>
</head>

<body>
    <select id="province"></select>
    <select id="city"></select>
    <select id="area"></select>
    <button id="btn" onclick='f()'>提交</button>
</body>
<script type="text/javascript">
    let province = '';
    let provinceIndex = 0;
    let city = '';
    let cityIndex = 0;
    let area = ''
    _areaList.map((item, index) => {
        $("#province").append(`<option value=${item.name} index=${index}>${item.name}</option>`);
    })

    // 当选择发生改变时记录值
    $('#province').change(function () {
        province = $('#province').val();
        provinceIndex = $('#province')[0].selectedIndex;
        init()
    })
    $('#city').change(function () {
        city = $('#city').val();
        cityIndex = $('#city')[0].selectedIndex;
        setArea(provinceIndex, cityIndex);
    })
    $('#area').change(function () {
        area = $('#area').val()
    })

    // 根据省份设置市区的下拉
    function setCity(provinceIndex) {
        $("#city").empty()
        _areaList[provinceIndex].city.map((item, index) => {
            $("#city").append(`<option value=${item.name} index=${index}>${item.name}</option>`);
        })
        city = $('#city').val();
    }
    // 根据市区设置区的下拉
    function setArea(provinceIndex, cityIndex) {
        $("#area").empty()
        _areaList[provinceIndex].city[cityIndex].area.map((item, index) => {
            $("#area").append(`<option value=${item}>${item}</option>`);
        })
        area = $('#area').val();
    }

    // 根据省份初始化
    function init() {
        cityIndex = 0;
        setCity(provinceIndex);
        setArea(provinceIndex, cityIndex);
        province = $('#province').val();
    }
    init()

    function f() {
        console.log(province + city + area);
    }
</script>

</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ts_shinian_web

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值