javascript省市區(qū)三級聯(lián)動下拉框菜單實(shí)例演示
本文實(shí)例講述了javascript實(shí)現(xiàn)省市區(qū)三級聯(lián)動下拉框菜單代碼,像平時(shí)購物選擇地址時(shí)一樣,通過選擇的省動態(tài)加載城市列表,通過選擇的城市動態(tài)加載縣區(qū)列表,從而可以實(shí)現(xiàn)省市縣的三級聯(lián)動,下面使用原生的JavaScript來實(shí)現(xiàn)這個(gè)功能,分享給大家供大家參考。具體如下:
運(yùn)行效果截圖如下:

具體代碼如下:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>三級聯(lián)動測試</title>
<script src="jquery-2.1.4.min.js"></script>
<script type="text/javascript">
//用來獲得option元素中selected屬性為true的元素的id
function Get_Selected_Id(place){
var pro = document.getElementById(place);
var Selected_Id = pro.options[pro.selectedIndex].id;
return Selected_Id; //返回selected屬性為true的元素的id
}
//改變下一個(gè)級聯(lián)的option元素的內(nèi)容,即加載市或縣
function Get_Next_Place(This_Place_ID,Action){
var Selected_Id = Get_Selected_Id(This_Place_ID); //Selected_Id用來記錄當(dāng)前被選中的省或市的ID
if(Action=='Get_city') //從而可以在下一個(gè)級聯(lián)中加載相應(yīng)的市或縣
Add_city(Selected_Id);
else if(Action=='Get_country')
Add_country(Selected_Id);
}
//用來存儲省市區(qū)的數(shù)據(jù)結(jié)構(gòu)
var Place_dict = {
"GuangDong":{
"GuangZhou":["PanYu","HuangPu","TianHe"],
"QingYuan":["QingCheng","YingDe","LianShan"],
"FoShan":["NanHai","ShunDe","SanShui"]
},
"ShanDong":{
"JiNan":["LiXia","ShiZhong","TianQiao"],
"QingDao":["ShiNan","HuangDao","JiaoZhou"]
},
"HuNan":{
"ChangSha":["KaiFu","YuHua","WangCheng"],
"ChenZhou":["BeiHu","SuXian","YongXian"]
}
};
//加載城市選項(xiàng)
function Add_city(Province_Selected_Id){
$("#city").empty();
$("#city").append("<option>City</option>");
$("#country").empty();
$("#country").append("<option>Country</option>");
//上面的兩次清空與兩次添加是為了保持級聯(lián)的一致性
var province_dict = Place_dict[Province_Selected_Id]; //獲得一個(gè)省的字典
for(city in province_dict){ //取得省的字典中的城市
//添加內(nèi)容的同時(shí)在option標(biāo)簽中添加對應(yīng)的城市ID
var text = "<option"+" id='"+city+"'>"+city+"</option>";
$("#city").append(text);
console.log(text); //用來觀察生成的text數(shù)據(jù)
}
}
//加載縣區(qū)選項(xiàng)
function Add_country(City_Selected_Id){
$("#country").empty();
$("#country").append("<option>Country</option>");
//上面的清空與添加是為了保持級聯(lián)的一致性
var Province_Selected_ID = Get_Selected_Id("province"); //獲得被選中省的ID,從而方便在字典中加載數(shù)據(jù)
var country_list = Place_dict[Province_Selected_ID][City_Selected_Id]; //獲得城市列表
for(index in country_list){
////添加內(nèi)容的同時(shí)在option標(biāo)簽中添加對應(yīng)的縣區(qū)ID
var text = "<option"+" id=\'"+country_list[index]+"\'>"+country_list[index]+"</option>";
$("#country").append(text);
console.log(text); //用來觀察生成的text數(shù)據(jù)
}
}
</script>
</head>
<body>
<p>您的收貨地址:</p>
<select id="province" onchange="Get_Next_Place('province','Get_city')">
<option id="Not_data1">Province</option>
<option id="GuangDong" value="GuangDong">GuangDong</option>
<option id="ShanDong" value="ShanDong">ShanDong</option>
<option id="HuNan" value="HuNan">HuNan</option>
</select>
<select id="city" onchange="Get_Next_Place('city','Get_country')">
<option id="Not_data2">City</option>
</select>
<select id="country">
<option id="Not_data3">Country</option>
</select>
<br/>
</body>
</html>
如果大家還想深入學(xué)習(xí),可以點(diǎn)擊jquery下拉框效果匯總、JavaScript下拉框效果匯總進(jìn)行學(xué)習(xí)。
這個(gè)實(shí)例就是類似在淘寶購物時(shí)填寫收貨地址,實(shí)現(xiàn)省市縣的三級聯(lián)動,希望大家可以應(yīng)用到自己的作品中,學(xué)以致用。
- PHP+Mysql+Ajax+JS實(shí)現(xiàn)省市區(qū)三級聯(lián)動
- javascript實(shí)現(xiàn)省市區(qū)三級聯(lián)動下拉框菜單
- 省市區(qū)三級聯(lián)動下拉框菜單javascript版
- js實(shí)現(xiàn)一個(gè)省市區(qū)三級聯(lián)動選擇框代碼分享
- 從QQ網(wǎng)站中提取的純JS省市區(qū)三級聯(lián)動菜單
- JSON+Jquery省市區(qū)三級聯(lián)動
- 原生js實(shí)現(xiàn)省市區(qū)三級聯(lián)動代碼分享
- vue.js模仿京東省市區(qū)三級聯(lián)動的選擇組件實(shí)例代碼
- javascript實(shí)現(xiàn)簡單的省市區(qū)三級聯(lián)動
- js實(shí)現(xiàn)省市區(qū)三級聯(lián)動非select下拉框版
相關(guān)文章
JavaScript學(xué)習(xí)筆記之創(chuàng)建對象
在JavaScript中對象是一種基本的數(shù)據(jù)類型,在數(shù)據(jù)結(jié)構(gòu)上是一種散列表,可以看作是屬性的無序集合,除了原始值其他一切都是對象。這篇文章主要給大家介紹JavaScript學(xué)習(xí)筆記之創(chuàng)建對象,需要的朋友參考下吧2016-03-03
javascript實(shí)現(xiàn)九宮格相加數(shù)值相等
這篇文章主要介紹了javascript實(shí)現(xiàn)九宮格相加數(shù)值相等的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02
wavesurfer.js繪制音頻波形圖的實(shí)現(xiàn)
這篇文章主要介紹了wavesurfer.js繪制音頻波形圖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
javascript 彈出窗口中是否顯示地址欄的實(shí)現(xiàn)代碼
程序中通過點(diǎn)擊一個(gè)“發(fā)貨提醒”鏈接彈出另一個(gè)窗口,使用的方法是用javascript 的openUrl()方法。2011-04-04
js 剪切板的用法(clipboardData.setData)與js match函數(shù)介紹
這篇文章主要是對js中剪切板的使用方法(clipboardData.setData)與js中的match函數(shù)進(jìn)行了介紹。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11

