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()參閱JavaScript createElement()一章節。
(3).innerHTML屬性參閱JavaScript innerHTML一章節。
(4).onchange事件參閱JavaScript select change 事件一章節。
相關文章
- JavaScript 省市級聯效果JavaScript
- JavaScript省市級聯效果詳解JavaScript
- 原生javascript製作省市區三級聯動詳細教程JavaScript
- 省市縣三級聯動(2)
- 省市縣三級聯動(1)
- 中國省市區街道四級聯動地區選擇元件元件
- JavaScript 三級導航選單JavaScript
- JavaScript二級導航選單JavaScript
- vue 省市區三級聯動外掛Vue
- Vue-使用ElementUI級聯選擇器懶載入省市縣資料VueUI
- JavaScript二級下拉選單詳解JavaScript
- jquery實現四級級聯下拉選單jQuery
- [Dcat 擴充套件] dcat-distpicker 省市區三級聯動選擇元件擴充套件元件
- Voyager 級聯選擇器外掛,可以方便的維護省市區資訊
- JavaScript橫向二級導航選單效果JavaScript
- JavaScript 動畫效果緩慢二級下拉選單JavaScript動畫
- 符合 iview 資料規則的省市區三級聯動View
- 用Vue、element-ui、axios實現省市區三級聯動VueUIiOS
- 基於layui的省市區三級聯動(資料互動)UI
- 利用JavaScript實現註冊頁面省市聯動效果(附程式碼)JavaScript
- js物件導向封裝級聯下拉選單列表JS物件封裝
- jq+php+mysql 實現二級選單聯動PHPMySql
- JavaScript 年月日級聯JavaScript
- javascript右鍵選單JavaScript
- Vue+Element 單選模式下Cascader級聯選擇器使用總結Vue模式
- WPF TreeView級聯複選View
- Flutter城市(省市區)選擇器Flutter
- CSS多級選單CSS
- 實現單擊一級選單顯示或隱藏二級選單
- JavaScript單元測試及原理JavaScript
- 最最最簡單從政府官方獲取最新省市縣聯動資料
- easyui的treegrid的級聯勾選子節點,或者級聯勾選父節點UI
- python程式: 三級選單Python
- HTML/CSS 二級選單HTMLCSS
- CSS 二級下拉選單CSS
- CSS二級下拉選單CSS
- [外掛擴充套件]中國省市區鄉鎮四級聯動外掛 修改...套件
- 使用json和jquery級聯選擇JSONjQuery