jQuery案例:ajax获取txt文本内容并实现三级联动

ajax作为唯二的前后端数据传输的方式之一,触发方式多样,同时也是异步的,基本上是取代了传统的form表单提交数据的方式。
以下基于jQuery和ajax实现了一个小案例:

文件结构

├── js
├── txt
	├── cities.txt
└── index.html

其中txt文件(cities.txt)大致如下图,是将中国三级联动城市数据的json文件直接做成txt文本:
具体可参照我的博客JavaScript:省、市、县三级联动案例
在这里插入图片描述

html部分

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.js"></script>
</head>

<body>
    <select id="provinces" name=""></select>
    <select id="cities" name=""></select>
    <select id="counties" name=""></select>
</body>

JavaScript部分(jQuery)

$(() => {
    $.ajax({
        type: "POST",
        url: "txt/cities.txt",
        data: {
            t: (new Date().getTime()),
        },
        success: function(data) {
            show(JSON.parse(data));
        },
        error: function(xhr) {
            console.log(xhr.status);
        }
    })
})

function show(cityData) {
    var province = $("#provinces").html("<option>-请选择-</option>"); // 省级下拉框的jQuery对象,并初始化
    var city = $("#cities").html("<option>-请选择-</option>"); // 地级市下拉框的jQuery对象,并初始化
    var county = $("#counties").html("<option>-请选择-</option>"); // 县级下拉框的jQuery对象,并初始化

    cityData.forEach((item, index) => { //遍历全部数据,主要添加全国省级数据
        province.append(new Option(item.text, index.value)); // 添加省级数据
    });

    province.change(function() { // 省级下拉框的change事件绑定
        city.html("<option>-请选择-</option>"); // 初始化地级市下拉框
        county.html("<option>-请选择-</option>"); // 初始化县级下拉框

        cityData[this.selectedIndex - 1].children.forEach((item, index) => { // 遍历当前省的下属地级市数据
            city.append(new Option(item.text, index.value)); // 添加地级市数据
        });

        city.change(function() { // 地级市下拉框的change事件绑定
            county.html("<option>-请选择-</option>"); // 初始化县级下拉框

            cityData[province.get(0).selectedIndex - 1].children[this.selectedIndex - 1].children.forEach((item, index) => { // 遍历当前地级市的下属县级数据
                county.append(new Option(item.text, index.value)); //添加县级数据
            });
        })
    })
}

实现效果

实现效果与之前的三级联动案例基本一致
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值