如何使用JQuery实现Js二级联动和三级联动

news2025/1/13 2:48:19

前言:使用JQuery封装好的js方法来实现二级三级联动要比直接使用js来实现二级三级联动要简洁很多。所以说JQuery是个非常强大的、简单易用的、兼容性好的JavaScript库,已经成为前端开发人员不可缺少的一部分,是Web开发中最流行的JavaScript库之一。

注意:使用JQuery库,必须从官方网站下载最新版本的JQuery库文件,然后导入你项目的根目录

 我这里是直接下载的是Layui官方网站最新版本的layui库文件,Layui里面也有JQuery库,Layui是基于JQuery开发的...

文章目录:

  1. 二级联动实现
  2. 三级联动实现

一、JQuery二级联动的实现

还是那句话,还是老套路,先创建 HTML 两个 <select></select> 下拉列表


    <select id="province" onchange="getCity()"></select>
    <select id="city">
        <option>请选择</option>
    </select>

好了,HTML 的那个两个下拉列表已经创建出来了,接下来就是 JavaScript代码实现相应的功能了

直接上代码:

 layui.use(['jquery', 'table', 'layer', 'form','upload'], function () {

        // 获取 LayUI 各模块的实例对象
        let $ = layui.jquery;
        let table = layui.table;
        let layer = layui.layer;
        let form = layui.form;
        let upload = layui.upload;

        //创建对象字面量
         var data = {
            "广东省":["广州","梅州"],
            "湖南省":["娄底","长沙"]
         } ;  

      //初始化省份
        var province = $("#province");
        $.each(data, function(key, value) {
            province.append($("<option></option>").attr("value", key).text(key));
        });

        //获取城市
        province.change(function() {
            var provinceName = $(this).val();
            var city = $("#city");
            city.empty();
            if (data[provinceName]) {
                $.each(data[provinceName], function(index, value) {
                    city.append($("<option></option>").text(value));
                });
            }
        });


    }) ;

append:是指定元素末尾添加内容的方法,可以接受任意数量的参数,每个参数都会被添加到目标元素的末尾,比如:$("ul").append("<li>小宝贝</li>")

alltr:获取或设置 HTLM 属性值的方法,可以传递一个参数用于获取属性值,也可以传递两个参数,用于设置属性值,比如我现在要设置一个图片img src属性值:$("img").attr("src", "newSrc.jpg")

上面就是一个使用JQuery实现的二级联动了,这里不过多唠嗑,一些概念就不写了,下面我们开始三级联动代码实现。

二、JQuery三级联动的实现

还是那句话,还是老套路,先创建 HTML 三个 <select></select> 下拉列表

 <select id="province">
        
    </select>
 
    <select id="city">
        <option>请选择</option>
    </select>


    <select id="district">
        <option>请选择</option>
    </select>

好了,下面我们直接上JavaScript代码,不过三级联动不能像二级联动那么草率了,详细讲解

1)创建JavaScript对象字面量

什么是对象字面量?其实就是一种JavaScript对象方法,它是[object literal]的一种形式;是用来创建包含键值对的对象,可以快速地创建和初始化一个对象,不再需要定义一个构造函数!

 var data = {
    "广东省": {
        "珠海市": ["香洲区", "斗门区"],
        "广州": ["番禺", "黄埔"]
    },
    "仙侠世界": {
        "玄幻大陆": ["无敌区", "无人区"],
        "科技大陆": ["天才区", "学士区"]
    }
};

2)初始化省份列表

// 获取省份列表
var province = $("#province");
$.each(data, function(key, value) {
  var option = $("<option>").text(key);
  province.append(option);
});

append:是指定元素末尾添加内容的方法,可以接受任意数量的参数,每个参数都会被添加到目标元素的末尾,比如:$("ul").append("<li>小宝贝</li>")

3)根据省份获取城市列表

// 根据省份获取城市列表
function getCity() {
  var city = $("#city");
  var district = $("#district");
  //城市为0,当选择了省份的时候才有数据
  city.empty();
  var selectedProvince = province.val();
  $.each(data[selectedProvince], function(key, value) {
    var option = $("<option>").text(key);
    city.append(option);
  });
}

empty:清空之前的选项内容,方便更新选项内容

4)根据城市获取区县列表

function getDistrict() {
  var district = $("#district");

  //区县为0,当选择了城市的时候才有数据
  district.empty();

  //获取城市
  var selectedProvince = province.val();
  
  //获取区县
  var selectedCity = $("#city").val();
 

  //循环遍历
  $.each(data[selectedProvince][selectedCity], function(key, value) {
    var option = $("<option>").text(value);
    district.append(option);
  });
}

// 函数绑定到省份和城市下拉框的 onchange 事件上
//县列表以便在用户选择不同的省份或城市时自动更新城市和区
province.on("change", getCity);
$("#city").on("change", getDistrict);

on:是JQuery一个绑定方法,用于指定元素添加一个或多个事件处理程序。

总结:

好了,以上代码就是使用JQuery库来实现的上面的二级三级联动,希望多多支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/577748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Spring Guides系列学习》guide61 - guide65

要想全面快速学习Spring的内容&#xff0c;最好的方法肯定是先去Spring官网去查阅文档&#xff0c;在Spring官网中找到了适合新手了解的官网Guides&#xff0c;一共68篇&#xff0c;打算全部过一遍&#xff0c;能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gui…

mybatisplus递归传递多个参数 | mybatisplus传递多个参数获取层级数据 | mybatisplus传递多个参数获取树形数据

搜索关键字&#xff1a; mybatisplus关联查询传递参数|"select""树形结构"|"select""树形结构""传参"| "select""many""传参"| "select""column""传参" 1、…

chatgpt赋能python:用Python自动操作其他软件优化你的SEO

用Python自动操作其他软件优化你的SEO 作为一名有着10年Python编程经验的工程师&#xff0c;我了解到Python具有强大的自动化功能&#xff0c;可以帮助我们自动化执行任务&#xff0c;节省时间和精力。其中&#xff0c;自动操作其他软件应用案例极为常见&#xff0c;如此&…

C#自定义控件:提示未将对象引用设置到对象实例

一、概述 1、当自定义的控件在添加的时候提示&#xff1a;提示未将对象引用设置到对象实例&#xff1b;如下所示&#xff1a; 2、添加上的自定义控件提示&#xff1a;未将对象引用设置到对象实例&#xff1b;如下所示&#xff1a; 二、问题分析 分析1&#xff1a; 在项目中使…

关于“烫烫烫烫烫烫烫”的程序员笑话

环境 Microsoft Visual Studio Community 2022Windows 11 家庭中文版 笑话 小明在超市买了3瓶汽水&#xff0c;他先打开第0瓶汽水&#xff0c;咕咚咕咚喝光了&#xff0c;接着打开第1瓶汽水&#xff0c;又咕咚咕咚喝光了&#xff0c;然后又打开第2瓶汽水&#xff0c;咕咚咕咚…

运维实用脚本整理

运维实用脚本整理 Linux运维日常巡检脚本系统指标巡检脚本日常命令性能相关的命令进程相关的命令javadump.sh 常用工具一键部署安装常用lib库安装系统检查脚本SPN 日常巡查脚本ffmpeg脚本打开进程&#xff0c;并判断进程数量关闭进程 java jar包启动-剔除Pom中依赖Java jar包通…

SAP QM 检验批上的‘容器数’

近期遇到一个问题。项目上质量部门发现某个原料批次收货打印出来的样品标签数不对。经查发现收货后触发的检验批上的‘容器数’&#xff08;No.Containers&#xff09;为999&#xff0c;实际上此次收货的箱数有1500多。 对于栏位‘容器数’&#xff0c;SAP的官方帮助文档&#…

指针 --- C语言

目录 1.指针是什么 2.指针和指针类型 3.野指针 4.指针运算 5.指针和数组 6.二级指针 7.指针数组 1.指针是什么 为了更好地管理内存&#xff0c;把内存分为了1个个小小的内存单元&#xff0c;大小是一个字节&#xff0c;每个字节给一个编号&#xff0c;内存的编号就是地…

《Spring Guides系列学习》guide56 - guide60

要想全面快速学习Spring的内容&#xff0c;最好的方法肯定是先去Spring官网去查阅文档&#xff0c;在Spring官网中找到了适合新手了解的官网Guides&#xff0c;一共68篇&#xff0c;打算全部过一遍&#xff0c;能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

Entity Framework Core 简明教程(3)- 关系处理

在数据库层面&#xff0c;表之间关系&#xff0c;通过主键、外键来实现&#xff0c;基于约束 (constraint) 和数据完整性来制约。 在 EF Core 技术层面&#xff0c;并不是简单地与数据库这些关系和约束对应&#xff0c;EF Core 有它自己的机制。本篇介绍 EF core 在处理表关系方…

HTML+CSS实训——Day03——仿网易云音乐的发现页界面

仓库链接:https://github.com/MengFanjun020906/HTML_SX 一些今天需要用到的知识点 弹性盒子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedg…

二次元的登录界面

今天还是继续坚持写博客&#xff0c;然后今天给大家带来比较具有二次元风格的登录界面&#xff0c;也只是用html和css来写的&#xff0c;大家可以来看看&#xff01; 个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大一在校生&#xff0c;web前端开发专业 &…

[acwing周赛复盘] 第 105 场周赛20230527

[acwing周赛复盘] 第 105 场周赛20230527 总结5029. 极值数量1. 题目描述2. 思路分析3. 代码实现 5030. 核心元素1. 题目描述2. 思路分析3. 代码实现 5031. 矩阵扩张1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 又是笨比的一周&#xff0c;只做出1题。T1 模拟T2 计…

leetcode刷题之链表相关问题(js)

21.合并两个有序链表 var mergeTwoLists function(list1, list2) {if(list1null) return list2if(list2null) return list1let newHead new ListNode(0,null) //创建一个虚拟节点let cur newHeadlet cur1 list1,cur2 list2while(cur1&&cur2){if(cur1.val<cur2.…

PowerToys Windows 工具集

Microsoft PowerToys | Microsoft Learn Microsoft PowerToys&#xff1a;用于自定义 Windows 的实用工具 项目2023/04/1918 个参与者 反馈 Microsoft PowerToys 是一组实用工具&#xff0c;可帮助高级用户调整和简化其 Windows 体验&#xff0c;从而提高工作效率。 安装 …

Unity之效应器

主要作用&#xff1a;在一个区域内让游戏对象受到力和扭矩力的作用 1、创建一个精灵&#xff08;绿色区域&#xff09; 2、为其添加碰撞器&#xff08;要将Used By Effector和is Trigger打钩&#xff09; 3、添加效应器组件 4、区域效应器参数 Use Collider Mask&#xff1a;…

第3章 Class and Object

构造函数 Guaranteed initialization with the constructor使用构造函数保证初始化 • If a class has a constructor, the compiler automatically calls that constructor at the point an object is created, before client programmers can get their hands on the o…

Solidity基础五

暂时的一事无成也代表将来万事皆有可能&#xff01; 目录 一、对Solidity文件的理解 二、Solidity的导sol文件&#xff08;库、合约&#xff09; 三、Solidity的继承 1.继承的分类 2.继承的可见性 3.父合约构造函数的传参 4.调用父合约成员 5.重写 四、Solidity的抽象…

Solidity基础八

别慌&#xff0c;月亮也在大海某处迷茫 目录 一、Solidity 编程风格 1. 代码布局 2. 代码中各部分的顺序 3. 命名约定 二、Solidity 智能合约编写过程 1. solidity Hello World 2. 版本声明 3. 导入声明 4. 合约声明 三、Solidity 合约结构 智能合约 Test 四、So…

Solidity基础六

生活本来就是平凡琐碎的&#xff0c;哪有那么多惊天动地的大事&#xff0c;快乐的秘诀就是不管对大事小事都要保持热情 目录 一、Solidity的特殊变量(全局) 二、Solidity的不可变量 immutable的赋值方式 三、Solidity的事件与日志 事件和日志加深理解 四、Solidity的异常…