JavaScript二維數(shù)組實(shí)現(xiàn)的省市聯(lián)動(dòng)菜單
更新時(shí)間:2014年05月08日 09:32:59 作者:
這篇文章主要介紹了使用二維數(shù)組實(shí)現(xiàn)的省市聯(lián)動(dòng)菜單,通過(guò)二維數(shù)組存儲(chǔ)城市列表項(xiàng),需要的朋友可以參考下
復(fù)制代碼 代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//初始化一個(gè)二維數(shù)組存儲(chǔ)城市列表項(xiàng)
var cities=[
["安慶","合肥","桐城"],
["石家莊","保定","唐山"],
["鄭州","洛陽(yáng)","開封"]
];
//選中某個(gè)省份時(shí)候,調(diào)用添加城市的方法
function provinceChanged(sel){
//alert("select的長(zhǎng)度"+sel.options.length);
//sel其實(shí)就是select對(duì)象
//遍歷options集合,查找選中的選項(xiàng)
for(var x=0;x<sel.options.length;x++)
{
var opt=sel.options[x];
if(opt.selected)
{
//給被選擇的城市的select 添加option
addCityToSelect(x)
}
}
}
//添加選中省份下的城市項(xiàng)到city的select中
function addCityToSelect(x){
//從二維數(shù)組中找出對(duì)應(yīng)的城市
var city=cities[x-1];
var citySelect=document.getElementById("select_city");
/*==================刪除節(jié)點(diǎn)中已經(jīng)存在的元素===============
在第二次或第n次調(diào)用方法的時(shí)候城市select對(duì)象中已經(jīng)添加了之前添加的節(jié)點(diǎn),所以有清空。
思路1:select對(duì)象的removeChild(),所以通過(guò)循環(huán)遍歷可以刪除字節(jié)點(diǎn)。
思路2:直接設(shè)置select.options.length=1可以實(shí)現(xiàn)相同效果。
*/
//設(shè)置城市的select對(duì)象下的options長(zhǎng)度為1
citySelect.options.length=1;
//設(shè)置options集合的長(zhǎng)度,刪除
//citySelect.options.length=1;
for(var x=0;x<city.length;x++)
{
//創(chuàng)建元素節(jié)點(diǎn)對(duì)象
var optionName=document.createElement("option");
//給option設(shè)置顯示內(nèi)容
optionName.innerHTML=city[x];
//將創(chuàng)建的option添加到select
citySelect.appendChild(optionName);
/*
在這個(gè)地方將某一個(gè)省份下面的所有城市添加到citySelect對(duì)象下面以后
當(dāng)?shù)诙芜x擇第二個(gè)省份的時(shí)候,第二個(gè)省份的下面的所有城市有會(huì)被追加到
citySelect節(jié)點(diǎn)下面。這樣的效果就錯(cuò)了。所以要求在每次添加之前,要
對(duì)citySelect節(jié)點(diǎn)下面的內(nèi)容進(jìn)行清空。接著看:
==================刪除節(jié)點(diǎn)中已經(jīng)存在的元素===============
*/
}
}
</script>
</head>
<body>
<select onchange="provinceChanged(this);">
<!--this的含義:是指select對(duì)象調(diào)用provinceChanged(this),并且在此方法中
把對(duì)象本身作為參數(shù)傳遞,以便對(duì)其進(jìn)行操作。 -->
<option>請(qǐng)選擇省份</option>
<option>安徽</option>
<option>河北</option>
<option>河南</option>
</select>
<select id="select_city">
<option>請(qǐng)選擇城市</option>
</select>
</body>
</html>
相關(guān)文章
基于javascript實(shí)現(xiàn)窗口抖動(dòng)效果
這篇文章主要介紹了基于javascript實(shí)現(xiàn)窗口抖動(dòng)效果,需要的朋友可以參考下2016-01-01JavaScript實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03微信小程序頁(yè)面間跳轉(zhuǎn)傳參方式總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于微信小程序頁(yè)面間跳轉(zhuǎn)傳參方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06JS實(shí)現(xiàn)點(diǎn)擊拉拽輪播圖pc端移動(dòng)端適配
本文通過(guò)實(shí)例代碼給大家介紹了JS點(diǎn)擊拉拽輪播圖pc端移動(dòng)端適配 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09Chrome擴(kuò)展頁(yè)面動(dòng)態(tài)綁定JS事件提示錯(cuò)誤
開發(fā)Chrome擴(kuò)展時(shí),頁(yè)面的popup.html中需要js的時(shí)候,直接將JS寫在動(dòng)態(tài)綁定JS事件會(huì)提示錯(cuò)誤,下面有個(gè)不錯(cuò)的解決方法,大家可以參考下2014-02-02vue使用vue-quill-editor富文本編輯器且將圖片上傳到服務(wù)器的功能
這篇文章主要介紹了vue使用vue-quill-editor富文本編輯器且將圖片上傳到服務(wù)器的功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Javascript 實(shí)現(xiàn)計(jì)算器時(shí)間功能詳解及實(shí)例(二)
這篇文章主要介紹了Javascript 實(shí)現(xiàn)計(jì)算器時(shí)間功能詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01