JavaScript二維數(shù)組實(shí)現(xiàn)的省市聯(lián)動(dòng)菜單
來(lái)源:易賢網(wǎng) 閱讀:1233 次 日期:2014-05-09 15:32:56
溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript二維數(shù)組實(shí)現(xiàn)的省市聯(lián)動(dòng)菜單”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了使用二維數(shù)組實(shí)現(xiàn)的省市聯(lián)動(dòng)菜單,通過(guò)二維數(shù)組存儲(chǔ)城市列表項(xiàng),需要的朋友可以參考下

代碼如下:

<!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)","開(kāi)封"]

];

//選中某個(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>

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)