溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JS實(shí)現(xiàn)簡(jiǎn)單省市二級(jí)聯(lián)動(dòng)

發(fā)布時(shí)間:2020-09-19 13:09:26 來(lái)源:腳本之家 閱讀:601 作者:qq_26607531 欄目:web開(kāi)發(fā)

剛始學(xué)習(xí)java剛好看到用js實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)的效果,就想著寫(xiě)篇博客,順便檢驗(yàn)下自己的學(xué)習(xí)成果。

好了廢話(huà)少說(shuō)先看看實(shí)際效果:

JS實(shí)現(xiàn)簡(jiǎn)單省市二級(jí)聯(lián)動(dòng)

技術(shù)分析:

要實(shí)現(xiàn)這個(gè)功能呢,首先要用到html+js

這里用建一個(gè)下拉列表,綁定onchange事件

<select onchange="changeCity(this.value)">
 <option>--請(qǐng)選擇--</option>
 <option value="0">湖北</option>
 <option value="1">湖南</option>
 <option value="2">河北</option>
 <option value="3">河南</option>
 </select>
 <select id="city">
 
</select>

好了下面是script部分了

<script>
 //1.創(chuàng)建一個(gè)二維數(shù)組用于存儲(chǔ)省份和城市
 var cities = new Array(3);
 cities[0] = new Array("武漢市","黃岡市","襄陽(yáng)市","荊州市");
 cities[1] = new Array("長(zhǎng)沙市","郴州市","株洲市","岳陽(yáng)市");
 cities[2] = new Array("石家莊市","邯鄲市","廊坊市","保定市");
 cities[3] = new Array("鄭州市","洛陽(yáng)市","開(kāi)封市","安陽(yáng)市");
 
 function changeCity(val){
 
 //7.獲取第二個(gè)下拉列表
 var c=document.getElementById("city");
 
 //9.清空第二個(gè)下拉列表的option內(nèi)容
 c.options.length=0;
 
 //2.遍歷二維數(shù)組中的省份
 for(var i=0;i<cities.length;i++){
 //注意,比較的是角標(biāo)
 if(val==i){
 //3.遍歷用戶(hù)選擇的省份下的城市
 for(var j=0;j<cities[i].length;j++){
 //alert(cities[i][j]);
 //4.創(chuàng)建城市的文本節(jié)點(diǎn)
 var a = document.createTextNode(cities[i][j]);
 //5.創(chuàng)建option元素節(jié)點(diǎn)
 var b = document.createElement("option");
 //6.將城市的文本節(jié)點(diǎn)添加到option元素節(jié)點(diǎn)
 b.appendChild(a);
 //8.將option元素節(jié)點(diǎn)添加到第二個(gè)下拉列表中去
 c.appendChild(b);
 }
 }
 }
 }
</script>

這樣這個(gè)簡(jiǎn)單的省市二級(jí)聯(lián)動(dòng)就完成了,是不是特別簡(jiǎn)單呢?本人因?yàn)橥祽兴灾粚?xiě)了四個(gè)省市,如果想完善點(diǎn)可以自己添加省市哦。

小編再為大家分享一位網(wǎng)友分享的一段代碼:原生js實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng),再此謝謝作者的分享。

通過(guò)document.createElement()創(chuàng)建option選項(xiàng),再遍歷數(shù)組appendChild到select對(duì)象內(nèi),三級(jí)聯(lián)動(dòng)就是用三位數(shù)組和嵌套遍歷來(lái)實(shí)現(xiàn)。

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>js省市二級(jí)聯(lián)動(dòng)</title>
 </head>
 <body>
 <form name="aform" method="get" action="#">
 省份:<select id="province" name="province" onchange="changeProvince(this.selectedIndex)"></select>
 城市:<select id="city" name="city"></select>
 </form>
 </body>
</html>

<script type="text/javascript">
 var provinces=["請(qǐng)選擇省份","北京市","天津市","上海市","重慶市","江蘇省","浙江省","江西省","海南省"];
 var citys=[
 ["請(qǐng)選擇城市"],
 ["北京市"],
 ["天津市"],
 ["上海市"],
 ["重慶市"],
 ["南京市","無(wú)錫市","徐州市","常州市","蘇州市","南通市","連云港市","淮安市","鹽城市","揚(yáng)州市","鎮(zhèn)江市","泰州市","宿遷市"],
 ["杭州市","寧波市","溫州市","紹興市","湖州市","嘉興市","金華市","衢州市","臺(tái)州市","麗水市","舟山"],
 ["南昌市","九江市","上饒市","撫州市","宜春市","吉安市","贛州市","景德鎮(zhèn)","萍鄉(xiāng)市","新余市","鷹潭市"],
 ["??谑?,"三亞市","三沙市","儋州市"]
 ];
 window.onload=function(){
 var province=document.getElementById("province");
 var city=document.getElementById("city");
 var index=0;
 //創(chuàng)建好后加入到列表中
 for(var i in provinces)
 {
 var option = document.createElement("option");
 option.text=provinces[i];
 option.value=provinces[i];
 province.appendChild(option);
 }
 var option = document.createElement("option");
 option.text=citys[index];
 option.value=citys[index];
 city.appendChild(option);
 }
 
 function changeProvince(selectedIndex){
 var city=document.getElementById("city");
 city.options.length=0;
 for(var i in citys[selectedIndex])
 {
 var option = document.createElement("option");
 option.text=citys[selectedIndex][i];
 option.value=citys[selectedIndex][i];
 city.appendChild(option);
 }
 
 }
</script>

更多關(guān)于菜單文章的精彩內(nèi)容請(qǐng)點(diǎn)擊專(zhuān)題:Javascript級(jí)聯(lián)菜單特效匯總

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI