jq三級聯(lián)動(dòng)下拉列表
jQuery三級聯(lián)動(dòng)是動(dòng)下一種常見(jiàn)(jian)的網(wǎng)頁(yè)交互效果,它可以實(shí)現在用??戶(hù)選擇一級選項時(shí),拉列二級選項隨之變化,動(dòng)下當用戶(hù)再選擇二級選項時(shí),拉列三級選項也隨之變化,動(dòng)下這種效果在很多電商平臺ヽ(′▽?zhuān)?/、拉列分類(lèi)信息網(wǎng)站等場(chǎng)景中都有廣泛應用,動(dòng)下本文?將詳細介紹如何使用jQuery實(shí)現三級聯(lián)動(dòng)。拉列
(圖片來(lái)源網(wǎng)絡(luò ),動(dòng)下侵刪)1、拉列準備工作
在使用jQuery實(shí)現三級聯(lián)動(dòng)之前,動(dòng)ヽ(′ー`)ノ下我們需要完成以下準(zhun)備工作:
引入j(?Д?)Query庫:首先需要在HTML文件中引入jQuery庫,拉列可以通過(guò)以下方式引入:
<script src="https://code.jquery.com/jquery3.6.0.min.js"></script>
準備HTML結構:需要準備三個(gè)層級的動(dòng)下列表,分別為一級列表、拉列二級列??表和三級列表,動(dòng)下每個(gè)列表中包含若干個(gè)選??項。
<div class=&q???uot;( ?ヮ?)levelone&quo(′▽?zhuān)?t;> <u??l> <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&qu(╥_╥)ot;> <ulヽ(′ー`)ノ> <li dataid="1" datapid="1" datalev(′-ι_-`)el="3">選項111</li> <l??i dataid="2" datapid="1&q( ?ヮ?)uot; datalevel="3">選項121</li> <li dataid="3" datapi┐(′д`)┌d="1" datalevel="3">選項1??31</li> </u(′?`)l></div>
2、編寫(xiě)jQuery代碼
接下來(lái),我們需要編寫(xiě)jQuery代碼來(lái)實(shí)現三級聯(lián)動(dòng),我們需要監聽(tīng)一級列表的change事件,當用戶(hù)選擇某個(gè)一級選項時(shí),根據該選項的dataid值更新二級列表的內容,我們??需要監聽(tīng)二級列表的change事件,當用戶(hù)選擇某個(gè)二級選項時(shí),??根據該選項的dataid和datapid值??更新三級列表的內容,具體代(′ω`)碼如下:
$(function() { // 獲取一級列表、二級列表和三級列表的元素 var $levelOne = $('.leve(??-)?lone'); var $levelTwo = $('.leveltwo'); var $levelThr??ee = $('.levelthree');?? // 獲取一級列表的所有選項并添加到二級ヽ(′ー`)ノ列表中作為默認選項?? $levelOne.find('li').each(function() { var $option = $(this); $option.clone().appendTo($levelTwo)(/ω\).attr('datapid', $option.attr('dataid')); }); // 監聽(tīng)一級列表的change事件,更新二級列表的內容 $levelOne.on('change', 'li', function() { var $selectedOption = $(this); var select??edId = $selected='selected'Option.attr('dataid'); $levelTwo.find('li[datapid!=' + selected='selected'Id + ']').remo(╬?益?)ve(); // 移除與當前選中項無(wú)關(guān)的二級選項(╯‵□′)╯ $selecteヽ(′ー`)ノdOption.siblings().each(function() { // 將選中項的兄弟節點(diǎn)添加到二級列表中作為默認選項 var $siblingOption = $(this); $sibli??ngOption.clone().appendTo($levelT(′ω`)wo).attr('dヾ(^-^)ノatapid', $siblingOption.attr('dataid')); }); }); // 監聽(tīng)二級列表的change事件,更新(′▽?zhuān)?三級列表的內容 $level??Two.on('change', 'li', function() { var $sel??ectedOption = $(this); var selected='selected'Id = $selected='selected'Option.attr('dataid'); var selected='selected'Pid = $selectedOption.attr('datapid'); $levelThree.f??ind('li[datapid!=' + selected=""Pid + '][dataid!=' + selected=""Id + ']').remove(); // 移除與當前選中項無(wú)關(guān)的三級選項 $selectedOption.siblings().each(func??tion() { // 將選中(zhong)項的兄弟節點(diǎn)添加到三級列表中作為默認選項 var $siblingOption = $(this); $siblingOption.clone(??).??appendTo($levelThree).attr('datapid', $siblingOption.attr('dataid')).attr('datalevel', '3');ヽ(′▽?zhuān)?ノ }); });});通過(guò)以上代(dai)碼,我們就實(shí)現了一個(gè)簡(jiǎn)單的三級聯(lián)動(dòng)效果,當用戶(hù)選擇一級列表中的某個(gè)選項時(shí),二(er)級列表會(huì )更新為與該選項相關(guān)的選項;當用戶(hù)再選擇二級列表中的某個(gè)選項時(shí),三級列表會(huì )更新為與該選項相關(guān)的選項。





