JavaScript省市級聯選單原理詳解
級聯選單效果在和很多應用中都有使用,下面就通過程式碼例項介紹一下如何實現此效果。
程式碼如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> var cities=[["安慶","合肥","桐城"],["石家莊","保定","唐山"],["鄭州","洛陽","開封"]]; function provinceChanged(sel){ for(var x=0;x<sel.options.length;x++){ var opt=sel.options[x]; if(opt.selected){ addCityToSelect(x) } } } function addCityToSelect(x){ var city=cities[x-1]; var citySelect=document.getElementById("select_city"); citySelect.options.length=1; for(var x=0;x<city.length;x++){ var optionName=document.createElement("option"); optionName.innerHTML=city[x]; citySelect.appendChild(optionName); } } window.onload=function(){ var pro=document.getElementById("pro"); pro.onchange=function(){ provinceChanged(this); } } </script> </head> <body> <select id="pro"> <option>請選擇省份</option> <option>安徽</option> <option>河北</option> <option>河南</option> </select> <select id="select_city"> <option>請選擇城市</option> </select> </body> </html>
以上程式碼實現了我們的要求,下面就簡單介紹一下它的實現過程。
一.程式碼註釋:
(1).var cities=[["安慶","合肥","桐城"],["石家莊","保定","唐山"],["鄭州","洛陽","開封"]],宣告一個陣列,模擬實現了二維陣列功能,每一個子陣列儲存是城市名稱。
(2).function provinceChanged(sel){},此函式用來獲取選中option項的索引,並將此索引值傳遞給addCityToSelect()函式。函式的引數為省份select下拉選單物件。
(3).for(var x=0;x<sel.options.length;x++){},遍歷省份select下拉選單的所有option項。
(4).var opt=sel.options[x],獲取當前option項物件。
(5).if(opt.selected){addCityToSelect(x)},如果當前項被選中,那麼就將此項的索引傳遞給函式addCityToSelect()。
(6).function addCityToSelect(x){},此函式接收選中省份的option索引值。它可以生成對應省份的城市下拉選單。
(7).var city=cities[x-1],獲取陣列中的對應城市陣列,之所以減一是因為省份的下拉選單第一個option項並不是省份。
(8).var citySelect=document.getElementById("select_city"),獲取城市select下拉選單物件。
(9).citySelect.options.length=1,設定select下拉選單長度為1,很重要,否則在切換省份的時候,城市下拉選單內容是追加效果。
(10).for(var x=0;x<city.length;x++){},遍歷對應城市子陣列的每一個項。
(11).var optionName=document.createElement("option"),建立一個option項。
(12).optionName.innerHTML=city[x],設定option項的文字內容為城市名稱。
(13).citySelect.appendChild(optionName),將option項新增到select下拉選單。
二.相關閱讀:
(1).options參閱javascript select.options一章節。
(2).document.createElement()參閱js createElement()一章節。
(3).innerHTML屬性參閱js innerHTML一章節。
(4).onchange事件參閱javascript select change 事件一章節。
相關文章
- JavaScript 省市級聯選單原理JavaScript
- JavaScript省市級聯效果詳解JavaScript
- JavaScript 省市級聯效果JavaScript
- jQuery 省市級聯選單程式碼例項jQuery
- js省市級聯選單程式碼例項JS
- JavaScript二級下拉選單詳解JavaScript
- 原生javascript製作省市區三級聯動詳細教程JavaScript
- 中國省市區街道四級聯動地區選擇元件元件
- JavaScript自定義右鍵選單詳解JavaScript
- jQuery三級導航選單詳解jQuery
- jQuery多級樹形選單詳解jQuery
- javascript讀取以json形式儲存的省市級聯效果JavaScriptJSON
- php中用ajax實現二級省市級聯PHP
- javascript帶有星期的年月日級聯選單效果JavaScript
- JavaScript側欄緩動分享選單詳解JavaScript
- jQuery + jQuery Mobile 實現省市二級下拉選單頁面jQuery
- CSS三級下拉導航選單詳解CSS
- jquery二級下拉導航選單詳解jQuery
- vue 省市區三級聯動外掛Vue
- JavaScript 三級導航選單JavaScript
- JavaScript二級導航選單JavaScript
- 二級下拉導航選單製作詳解
- Vue-使用ElementUI級聯選擇器懶載入省市縣資料VueUI
- jquery實現四級級聯下拉選單jQuery
- JS實現級聯下拉選單JS
- javascript模擬美化select下拉選單效果詳解JavaScript
- 用Vue實現省市區三級聯動Vue
- Voyager 級聯選擇器外掛,可以方便的維護省市區資訊
- 原生js三級導航選單實現詳解JS
- JavaScript物件導向詳解(原理)JavaScript物件
- 淘寶頁面實現(包括級聯選單,下拉選單,框架)框架
- select下拉選單二級聯動
- [Dcat 擴充套件] dcat-distpicker 省市區三級聯動選擇元件擴充套件元件
- Android省市區三級聯動控制元件Android控制元件
- JavaScript選項卡效果詳解JavaScript
- 年月日級聯效果詳解
- 基於ThinkPHP+AJAX的省市區三級聯動PHP
- 【簡單易懂】JPA概念解析:CascadeType(各種級聯操作)詳解。