JS實(shí)現(xiàn)簡(jiǎn)單省市二級(jí)聯(lián)動(dòng)
剛始學(xué)習(xí)java剛好看到用js實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)的效果,就想著寫篇博客,順便檢驗(yàn)下自己的學(xué)習(xí)成果。
好了廢話少說(shuō)先看看實(shí)際效果:

技術(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.遍歷用戶選擇的省份下的城市
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)橥祽兴灾粚懥怂膫€(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)擊專題:Javascript級(jí)聯(lián)菜單特效匯總
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js實(shí)現(xiàn)的全國(guó)省市二級(jí)聯(lián)動(dòng)下拉選擇菜單完整實(shí)例
- 最好用的二級(jí)聯(lián)動(dòng) 原生js實(shí)現(xiàn)你值得擁有
- jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法
- js操作二級(jí)聯(lián)動(dòng)實(shí)現(xiàn)代碼
- 全國(guó)省市二級(jí)聯(lián)動(dòng)下拉菜單 js版
- js實(shí)現(xiàn)select二級(jí)聯(lián)動(dòng)下拉菜單
- js實(shí)現(xiàn)的下拉框二級(jí)聯(lián)動(dòng)效果
- 簡(jiǎn)單js代碼實(shí)現(xiàn)selece二級(jí)聯(lián)動(dòng)(推薦)
- JS簡(jiǎn)單實(shí)現(xiàn)城市二級(jí)聯(lián)動(dòng)選擇插件的方法
- javascript支持區(qū)號(hào)輸入的省市二級(jí)聯(lián)動(dòng)下拉菜單
相關(guān)文章
js創(chuàng)建元素(節(jié)點(diǎn))示例
本文為大家介紹下使用js是如何創(chuàng)建元素(節(jié)點(diǎn))的,感興趣的朋友不要錯(cuò)過(guò)2014-01-01
微信小程序?qū)崿F(xiàn)聊天界面發(fā)送功能(示例代碼)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)聊天界面發(fā)送功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07
使用firebug進(jìn)行調(diào)試javascript的示例
調(diào)試javascript的方法有很多,在本文為大家介紹下使用firebug是如何做到的,感興趣的朋友可以參考下2013-12-12
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
本文主要給大家詳細(xì)介紹Angular和Nodejs、socket.io的使用,以及如何使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室,需要的朋友可以來(lái)參考下2015-08-08
javascript如何實(shí)現(xiàn)create方法
這篇文章主要介紹了javascript如何實(shí)現(xiàn)create方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
常見(jiàn)的JavaScript內(nèi)存錯(cuò)誤及解決方法
這篇文章主要介紹了常見(jiàn)的JavaScript內(nèi)存錯(cuò)誤,JavaScript?不提供任何內(nèi)存管理操作。相反,內(nèi)存由?JavaScript?VM?通過(guò)內(nèi)存回收過(guò)程管理,該過(guò)程稱為垃圾收集。下面我們就來(lái)看看下面文章對(duì)JavaScript內(nèi)存錯(cuò)誤的各種舉例說(shuō)明吧2021-12-12

