上一篇
jq三级联动下拉列表
- 行业动态
- 2024-03-22
- 1
jQuery三级联动是一种常见的网页交互效果,它可以实现在用户选择一级选项时,二级选项随之变化,当用户再选择二级选项时,三级选项也随之变化,这种效果在很多电商平台、分类信息网站等场景中都有广泛应用,本文将详细介绍如何使用jQuery实现三级联动。
1、准备工作
在使用jQuery实现三级联动之前,我们需要完成以下准备工作:
引入jQuery库:首先需要在HTML文件中引入jQuery库,可以通过以下方式引入:
<script src="https://code.jquery.com/jquery3.6.0.min.js"></script>
准备HTML结构:需要准备三个层级的列表,分别为一级列表、二级列表和三级列表,每个列表中包含若干个选项。
<div class="levelone"> <ul> <li dataid="1">选项1</li> <li dataid="2">选项2</li> <li dataid="3">选项3</li> </ul> </div> <div class="leveltwo"> <ul> <li dataid="1" datapid="1">选项11</li> <li dataid="2" datapid="1">选项12</li> <li dataid="3" datapid="1">选项13</li> </ul> </div> <div class="levelthree"> <ul> <li dataid="1" datapid="1" datalevel="3">选项111</li> <li dataid="2" datapid="1" datalevel="3">选项121</li> <li dataid="3" datapid="1" datalevel="3">选项131</li> </ul> </div>
2、编写jQuery代码
接下来,我们需要编写jQuery代码来实现三级联动,我们需要监听一级列表的change
事件,当用户选择某个一级选项时,根据该选项的dataid
值更新二级列表的内容,我们需要监听二级列表的change
事件,当用户选择某个二级选项时,根据该选项的dataid
和datapid
值更新三级列表的内容,具体代码如下:
$(function() { // 获取一级列表、二级列表和三级列表的元素 var $levelOne = $('.levelone'); var $levelTwo = $('.leveltwo'); var $levelThree = $('.levelthree'); // 获取一级列表的所有选项并添加到二级列表中作为默认选项 $levelOne.find('li').each(function() { var $option = $(this); $option.clone().appendTo($levelTwo).attr('datapid', $option.attr('dataid')); }); // 监听一级列表的change事件,更新二级列表的内容 $levelOne.on('change', 'li', function() { var $selectedOption = $(this); var selectedId = $selectedOption.attr('dataid'); $levelTwo.find('li[datapid!=' + selectedId + ']').remove(); // 移除与当前选中项无关的二级选项 $selectedOption.siblings().each(function() { // 将选中项的兄弟节点添加到二级列表中作为默认选项 var $siblingOption = $(this); $siblingOption.clone().appendTo($levelTwo).attr('datapid', $siblingOption.attr('dataid')); }); }); // 监听二级列表的change事件,更新三级列表的内容 $levelTwo.on('change', 'li', function() { var $selectedOption = $(this); var selectedId = $selectedOption.attr('dataid'); var selectedPid = $selectedOption.attr('datapid'); $levelThree.find('li[datapid!=' + selectedPid + '][dataid!=' + selectedId + ']').remove(); // 移除与当前选中项无关的三级选项 $selectedOption.siblings().each(function() { // 将选中项的兄弟节点添加到三级列表中作为默认选项 var $siblingOption = $(this); $siblingOption.clone().appendTo($levelThree).attr('datapid', $siblingOption.attr('dataid')).attr('datalevel', '3'); }); }); });
通过以上代码,我们就实现了一个简单的三级联动效果,当用户选择一级列表中的某个选项时,二级列表会更新为与该选项相关的选项;当用户再选择二级列表中的某个选项时,三级列表会更新为与该选项相关的选项。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/289024.html