综合案例 --- 省市区下拉框三级联动
1. 代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
select {
width: 100px;
}
</style>
</head>
<body>
<div>
<span style="margin-right: 10px">地区选择</span>
<select name="" id="province">
<option value="">省份</option>
</select>
<select name="" id="city">
<option value="">城市</option>
</select>
<select name="" id="area">
<option value="">地区</option>
</select>
</div>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
// 获取省份列表
function getProvinceData() {
axios({
url: "http://hmajax.itheima.net/api/province"
}).then(result => {
const pList = result.data.list
document.querySelector("#province").innerHTML = `<option value="">省份</option>` + pList.map(pname => {
return `<option value="${pname}">${pname}</option>`
}).join('')
})
}
getProvinceData()
// 当用户选择省份后获取城市列表
document.querySelector("#province").addEventListener("change", async e => {
// 当用户重新选择省份时,要将地区的选项清空
document.querySelector("#area").innerHTML = `<option value="">地区</option>`
const result = await axios({url: "http://hmajax.itheima.net/api/city", params: {pname: e.target.value}})
const cList = result.data.list
document.querySelector("#city").innerHTML = `<option value="">城市</option>` + cList.map(cname => {
return `<option value="${cname}">${cname}</option>`
}).join('')
})
// 当用户选择城市后获取地区列表
document.querySelector("#city").addEventListener("change", async e => {
const result = await axios({
url: "http://hmajax.itheima.net/api/area",
params: {pname: document.querySelector("#province").value, cname: e.target.value}
})
const aList = result.data.list
document.querySelector("#area").innerHTML = `<option value="">地区</option>` + aList.map(aname => {
return `<option value="${aname}">${aname}</option>`
}).join('')
})
</script>
</body>
</html>
python防脱发技巧

浙公网安备 33010602011771号