您好,登錄后才能下訂單哦!
剛始學習java剛好看到用js實現省市二級聯動的效果,就想著寫篇博客,順便檢驗下自己的學習成果。
好了廢話少說先看看實際效果:
技術分析:
要實現這個功能呢,首先要用到html+js
這里用建一個下拉列表,綁定onchange事件
<select onchange="changeCity(this.value)"> <option>--請選擇--</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.創建一個二維數組用于存儲省份和城市 var cities = new Array(3); cities[0] = new Array("武漢市","黃岡市","襄陽市","荊州市"); cities[1] = new Array("長沙市","郴州市","株洲市","岳陽市"); cities[2] = new Array("石家莊市","邯鄲市","廊坊市","保定市"); cities[3] = new Array("鄭州市","洛陽市","開封市","安陽市"); function changeCity(val){ //7.獲取第二個下拉列表 var c=document.getElementById("city"); //9.清空第二個下拉列表的option內容 c.options.length=0; //2.遍歷二維數組中的省份 for(var i=0;i<cities.length;i++){ //注意,比較的是角標 if(val==i){ //3.遍歷用戶選擇的省份下的城市 for(var j=0;j<cities[i].length;j++){ //alert(cities[i][j]); //4.創建城市的文本節點 var a = document.createTextNode(cities[i][j]); //5.創建option元素節點 var b = document.createElement("option"); //6.將城市的文本節點添加到option元素節點 b.appendChild(a); //8.將option元素節點添加到第二個下拉列表中去 c.appendChild(b); } } } } </script>
這樣這個簡單的省市二級聯動就完成了,是不是特別簡單呢?本人因為偷懶所以只寫了四個省市,如果想完善點可以自己添加省市哦。
小編再為大家分享一位網友分享的一段代碼:原生js實現省市二級聯動,再此謝謝作者的分享。
通過document.createElement()創建option選項,再遍歷數組appendChild到select對象內,三級聯動就是用三位數組和嵌套遍歷來實現。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js省市二級聯動</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=["請選擇省份","北京市","天津市","上海市","重慶市","江蘇省","浙江省","江西省","海南省"]; var citys=[ ["請選擇城市"], ["北京市"], ["天津市"], ["上海市"], ["重慶市"], ["南京市","無錫市","徐州市","常州市","蘇州市","南通市","連云港市","淮安市","鹽城市","揚州市","鎮江市","泰州市","宿遷市"], ["杭州市","寧波市","溫州市","紹興市","湖州市","嘉興市","金華市","衢州市","臺州市","麗水市","舟山"], ["南昌市","九江市","上饒市","撫州市","宜春市","吉安市","贛州市","景德鎮","萍鄉市","新余市","鷹潭市"], ["海口市","三亞市","三沙市","儋州市"] ]; window.onload=function(){ var province=document.getElementById("province"); var city=document.getElementById("city"); var index=0; //創建好后加入到列表中 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>
更多關于菜單文章的精彩內容請點擊專題:Javascript級聯菜單特效匯總
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。