当前位置: 首页 > news >正文

JavaScript三级联动jQuery写法

HTML结构

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>三级联动</title><!-- <style>select {margin: 10px 0;padding: 5px;width: 200px;}</style> --><script src="./js/jquery-3.7.1.js"></script>
</head><body><select id="provinceSelect"><option value="">请选择省份</option></select><select id="citySelect"><option value="">请先选择省份</option></select><select id="countySelect"><option value="">请先选择省份</option></select><button onclick="showResult()">显示结果</button><script src="./js/local.js"></script>
</body></html>

JS部分的jQuery写法

// 使用jQuery选择器获取省份、城市、区县选择器的DOM元素
let provinceSelect = $('#provinceSelect');
let citySelect = $('#citySelect');
let countySelect = $('#countySelect');
let data; // 用于存储省市县数据的变量// 加载数据的函数
function loadData() {// 使用jQuery的ajax方法从JSON文件加载数据,假设文件路径为 'js/locals.json'$.ajax({// 设置请求的文件路径为 'js/locals.json'url: 'js/localss.json',// 设置请求的数据类型为JSONdataType: 'json',// 请求成功后调用success函数处理数据success: function (json) {// 将数据存储在全局变量data中data = json; // 调用填充省份数据的函数populateProvinces(); }});
}// 填充省份数据的函数
function populateProvinces() {// 清空省份选择框provinceSelect.empty();// 添加默认选项provinceSelect.append($('<option value="">请选择省份</option>'));// 遍历数据中的每个省份,创建并添加一个选项元素$.each(data, function (index, province) {// 创建一个option元素,设置其value属性为省份的索引值,text属性为省份的名称provinceSelect.append($('<option></option>').text(province.province));});
}// 根据选择的省份填充城市数据的函数
function populateCities(provinceIndex) {// 清空城市选择框和区县选择框citySelect.empty();// 添加默认选项citySelect.append($('<option value="">请选择城市</option>'));countySelect.empty();countySelect.append($('<option value="">请先选择城市</option>'));let cities = data[provinceIndex].cities;// 遍历城市数据,创建并添加选项元素$.each(cities, function (index, city) {citySelect.append($('<option></option>').text(city.city));});
}// 根据选择的城市填充区县数据的函数
function populateCounties(provinceIndex, cityIndex) {// 清空区县选择框countySelect.empty();countySelect.append($('<option value="">请选择区县</option>'));let counties = data[provinceIndex].cities[cityIndex].counties;// 遍历区县数据,创建并添加选项元素$.each(counties, function (index, county) {countySelect.append($('<option></option>').text(county));});
}// 当省份选择器的选项改变时,调用此函数
$('#provinceSelect').on('change', function () {let provinceIndex = $(this).prop('selectedIndex') - 1; // -1是因为第一个option是请选择省份if (provinceIndex >= 0) {populateCities(provinceIndex);} else {citySelect.empty();// 添加默认选项请选择城市citySelect.append($('<option value="">请选择城市</option>'));countySelect.empty();// 添加选项为请先选择区县countySelect.append($('<option value="">请选择区县</option>'));}
});// 当城市选择器的选项改变时,调用此函数
$('#citySelect').on('change', function () {let provinceIndex = $('#provinceSelect').prop('selectedIndex') - 1;let cityIndex = $(this).prop('selectedIndex') - 1;if (cityIndex >= 0) {populateCounties(provinceIndex, cityIndex);} else {countySelect.empty();countySelect.append($('<option value="">请选择区县</option>'));}
});// 显示选择结果的函数
function showResult() {// 获取省份、城市、区县的value值let province = $('#provinceSelect option:selected').text();let city = $('#citySelect option:selected').text();let county = $('#countySelect option:selected').text();if (province && city && county) {// 弹窗显示选择结果alert(`您选择的结果是:${province} - ${city} - ${county}`);}
}// 页面加载完成后加载数据
$(document).ready(function () {// 调用加载数据的函数loadData();
});

带有详细注释家人们!

http://www.lryc.cn/news/416436.html

相关文章:

  • 无人机挂载抓捕网
  • 174.地下城游戏——LeetCode
  • 登录相关功能的优化【JWT令牌+拦截器+跨域】
  • 向日葵没有显示器会卡住
  • 【机器学习西瓜书学习笔记——聚类】
  • MATLAB(8)深度变化模型
  • mp3格式转换器哪个好用?汇总七款音频格式转换方法(无损转换)
  • 移行前的复盘:CodeCommit 的重要地位分析
  • Java中等题-括号生成(力扣)
  • Flink 实时数仓(八)【DWS 层搭建(二)流量域、用户域、交易域搭建】
  • gitlab-runner /var/run/docker.sock connect permission denied
  • 网络安全 - 应急响应检查表
  • AD常用PCB设计规则介绍 (详细版)
  • mysql主从服务配置
  • Redis基础总结、持久化、主从复制、哨兵模式、内存淘汰策略、缓存
  • Java与Python优劣势对比:具体例子与深入分析
  • C++内存泄漏介绍
  • C++分析红黑树
  • mysql线上查询之前要性能调优
  • GPIO输出控制之LED闪烁、LED流水灯以及蜂鸣器应用案例
  • 体系结构论文导读(三十四):Design of Reliable DNN Accelerator with Un-reliable ReRAM
  • WebStock会话
  • 5_现有网络模型的使用
  • 软件安全测试报告内容和作用简析,软件测试服务供应商推荐
  • 算法板子:树形DP、树的DFS——树的重心
  • 在C语言中,联合体或共用体(union )是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。
  • MS2201以太网收发电路
  • 乐乐音乐Kotlin版
  • C语言——预处理和指针
  • iptables防火墙(一)