運用極簡行程式碼實現省市二級聯動【固定資料版】
阿新 • • 發佈:2020-12-19
技術標籤:分享實踐前端javascriptjqueryhtml5
運用極簡行程式碼實現省市二級聯動【固定資料版】
固定資料(加到map.js開頭)
var area =[
{
"proName":"廣東",
"cityName":['潮州','東莞','佛山','廣州','河源','惠州','江門','揭陽','茂名','梅州','清遠','汕頭','汕尾','韶關','深圳','陽江','雲浮','湛江','肇慶','中山','珠海'],
}, {
"proName" :"廣西",
"cityName":['百色','北海','崇左','防城港','貴港','桂林','河池','賀州','來賓','柳州','南寧','欽州','梧州','玉林'],
}, {
"proName":"雲南",
"cityName":['楚雄','大理','德巨集','迪慶','紅河','昆明','麗江','臨滄','怒江','普洱','曲靖','瑞麗','文山','西雙版納','玉溪','昭通'],
}, {
"proName" :"海南",
"cityName":['白沙','保亭','昌江','澄邁','儋州','定安','東方','海口','樂東','臨高','陵水','瓊海','瓊中','三亞','屯昌','萬寧','文昌','五指山']
}
]
map.html
<head>
<!-- 樣式 -->
<style>
body { background: #eee; }
select { width: 100px;outline: none; }
</style >
</head>
<body>
<div>
<select id="pro" onchange="initCity()">
<option style="display:none">請選擇省份</option>
</select>
<select id="city">
<option style="display:none">請選擇市區</option>
</select>
</div>
</body>
map.js(方法1:Jquery寫法)
$(function() {
initPro() //先載入省份
})
function initPro() {
let _pro = $("#pro")
for (let i = 0; i < area.length; i++) {
_pro.append($("<option></option>").val(i).html(area[i].proName))
}
}
function initCity() {
var idx = $("#pro").val()
let _city = $("#city")
_city.prop("length", 1) // prop設定屬性和值,清空city佇列,1為顯示預設文字
for (var i = 0; i < area[idx].cityName.length; i++) {
_city.append($("<option></option>").val(i+1).html(area[idx].cityName[i]))
}
}
map.js(方法2:JavaScript寫法)
window.onload = function() {
initPro() //先載入省份
}
function initPro() {
let _pro = document.getElementById("pro")
for (let i in area) {
_pro.add(new Option(area[i].proName, i), null)
}
}
function initCity() {
let idx = document.getElementById("pro").value;
let _city = document.getElementById("city");
_city.length = 1; // 每次都先清空city
for (var i in area[idx].cityName) {
_city.add(new Option(area[idx].cityName[i], i), null)
}
}
還沒滿足您的需求?更多請了解:運用極簡行程式碼實現省市二級聯動【json動態資料版】