JavaScript簡(jiǎn)單下拉菜單特效
本文實(shí)例為大家分享了js下拉菜單特效,供大家參考,具體內(nèi)容如下
實(shí)例1:聯(lián)動(dòng)的省市下拉菜單
onchange 事件會(huì)在域的內(nèi)容改變時(shí)發(fā)生。
<script type="text/javascript">
var arr = new Array(); //數(shù)據(jù)數(shù)組
//定義數(shù)據(jù),結(jié)構(gòu)為:id、名字、父id
arr[arr.length] = [1, '北京市', null];
arr[arr.length] = [2, '四川省', null];
arr[arr.length] = [3, '廣東省', null];
arr[arr.length] = [4, '北京市', 1];
arr[arr.length] = [5, '成都市', 2];
arr[arr.length] = [6, '廣州市', 3];
arr[arr.length] = [7, '深圳市', 3];
//動(dòng)態(tài)設(shè)置下拉項(xiàng)目
function fillOptions(type){
if(type == 'province'){
//獲取省份下拉菜單的DOM
var province = document.getElementById("province");
province.innerHTML = ''; //內(nèi)容先置空
//填充省的字符
var proStr = '<option value=""></option>';
//遍歷數(shù)組
for(var i=0; i<arr.length; i++){
var item = arr[i]; //當(dāng)前項(xiàng)
//如果沒有父id,則是省份
if(item[2] == null)
proStr += '<option value='+item[0]+'>'+item[1]+'</option>';
}
province.innerHTML = proStr;//填充新內(nèi)容
}else if(type == 'city'){
//獲取當(dāng)前的省份的id
var currProId = document.getElementById("province").value;
if(currProId == '')
return false;
//獲取城市下拉菜單的DOM
var city = document.getElementById("city");
city.innerHTML = ''; //內(nèi)容先置空
//填充市的字符
var cityStr = '<option value=""></option>';
//遍歷數(shù)組
for(var i=0; i<arr.length; i++){
var item = arr[i]; //當(dāng)前項(xiàng)
//判斷是否為當(dāng)前省下的城市
if(item[2] == currProId)
cityStr += '<option value='+item[0]+'>'+item[1]+'</option>';
}
city.innerHTML = cityStr ;//填充新內(nèi)容
}
}
</script>
<body style="text-align:center;" onload="fillOptions('province');">
<!-- 定義下拉菜單 -->
?。?lt;select id="province" onchange="fillOptions('city')"></select><br/><br/>
市:<select id="city"></select><br/><br/>
</body>
實(shí)例2:三級(jí)聯(lián)動(dòng)的省市縣下拉菜單
<script type="text/javascript">
var arr = new Array(); //數(shù)據(jù)數(shù)組
//定義數(shù)據(jù),結(jié)構(gòu)為:id、名字、父id
arr[arr.length] = [1, '北京市', null];
arr[arr.length] = [2, '四川省', null];
arr[arr.length] = [3, '廣東省', null];
arr[arr.length] = [4, '北京市', 1];
arr[arr.length] = [5, '成都市', 2];
arr[arr.length] = [6, '廣州市', 3];
arr[arr.length] = [7, '深圳市', 3];
arr[arr.length] = [8, '武侯區(qū)', 5];
arr[arr.length] = [9, '青羊區(qū)', 5];
arr[arr.length] = [10, '白云區(qū)', 6];
arr[arr.length] = [11, '增城市', 6];
arr[arr.length] = [12, '從化市', 6];
//動(dòng)態(tài)設(shè)置下拉項(xiàng)目
function fillOptions(type){
if(type == 'province'){
//獲取省份下拉菜單的DOM
var province = document.getElementById("province");
province.innerHTML = ''; //內(nèi)容先置空
//填充省的字符
var proStr = '<option value=""></option>';
for(var i=0; i<arr.length; i++){ //遍歷數(shù)組
var item = arr[i]; //當(dāng)前項(xiàng)
//如果沒有父id,則是省份
if(item[2] == null)
proStr += '<option value='+item[0]+'>'+item[1]+'</option>';
}
province.innerHTML = proStr; //填充新內(nèi)容
}else if(type == 'city'){
//獲取當(dāng)前的省份的id
var currProId = document.getElementById("province").value;
if(currProId == '')
return false;
//獲取城市下拉菜單的DOM
var city = document.getElementById("city");
city.innerHTML = ''; //內(nèi)容先置空
//填充市的字符
var cityStr = '<option value=""></option>';
for(var i=0; i<arr.length; i++){ //遍歷數(shù)組
var item = arr[i]; //當(dāng)前項(xiàng)
//判斷是否為當(dāng)前省下的城市
if(item[2] == currProId)
cityStr += '<option value='+item[0]+'>'+item[1]+'</option>';
}
city.innerHTML = cityStr ;//填充新內(nèi)容
}else if(type == 'area'){
//獲取當(dāng)前城市的id
var currCityId = document.getElementById("city").value;
if(currCityId == '')
return false;
//獲取區(qū)縣下拉菜單的DOM
var area = document.getElementById("area");
area.innerHTML = ''; //內(nèi)容先置空
//填充區(qū)縣的字符
var areaStr = '<option value=""></option>';
for(var i=0; i<arr.length; i++){ //遍歷數(shù)組
var item = arr[i]; //當(dāng)前項(xiàng)
//判斷是否為當(dāng)前城市下的區(qū)縣
if(item[2] == currCityId)
areaStr += '<option value='+item[0]+'>'+item[1]+'</option>';
}
area.innerHTML = areaStr; //填充新內(nèi)容
}
}
</script>
<body style="text-align:center;" onload="fillOptions('province');">
<!-- 定義下拉菜單 -->
?。?lt;select id="province" onchange="fillOptions('city')"></select><br/><br/>
市:<select id="city" onchange="fillOptions('area')"></select><br/><br/>
縣/區(qū):<select id="area"></select><br/><br/>
</body>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 純css下拉菜單 無(wú)需js
- 全國(guó)省市二級(jí)聯(lián)動(dòng)下拉菜單 js版
- JS組件Bootstrap實(shí)現(xiàn)下拉菜單效果代碼
- js實(shí)現(xiàn)select二級(jí)聯(lián)動(dòng)下拉菜單
- Extjs實(shí)現(xiàn)下拉菜單效果
- javascript仿京東導(dǎo)航左側(cè)分類導(dǎo)航下拉菜單效果
- 使用Javascript實(shí)現(xiàn)選擇下拉菜單互移并排序
- JavaScript實(shí)現(xiàn)下拉菜單的顯示和隱藏
- javascript手風(fēng)琴下拉菜單實(shí)現(xiàn)代碼
- JavaScript 下拉菜單實(shí)現(xiàn)代碼
相關(guān)文章
詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)
這篇文章主要介紹了詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
小程序canvas手寫簽名適配PC實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了小程序canvas手寫簽名適配PC實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
關(guān)于promise和async用法以及區(qū)別詳解
Promise是一個(gè)構(gòu)造函數(shù),我們就可以new Promise()得到一個(gè) Promise的實(shí)例,下面這篇文章主要給大家介紹了關(guān)于promise和async用法以及區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-01-01
微信小程序后端實(shí)現(xiàn)授權(quán)登錄
這篇文章主要介紹了微信小程序后端實(shí)現(xiàn)授權(quán)登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
基于MVC方式實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)(JavaScript)
這篇文章主要為大家詳細(xì)介紹了基于MVC方式實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
微信小程序中使用echarts方法(全網(wǎng)最詳細(xì)教程!)
現(xiàn)在越來(lái)越多的項(xiàng)目都在使用可視化的功能,那么使用echarts實(shí)現(xiàn)是一種不錯(cuò)的選擇,下面這篇文章主要給大家介紹了關(guān)于小程序中使用echarts的方法,本文介紹的方法應(yīng)該是全網(wǎng)最詳細(xì)教程,需要的朋友可以參考下2023-06-06
JavaScript之map reduce_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了JavaScript之map reduce的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

