1. 任务要求

        1)理解JSON的概念;

        2)掌握JSON对象的定义以及使用;

        3)如何使用JSON存储城市信息;

        4)如何页面加载时,遍历JSON数据,并将JSON数据渲染到页面;

        5)如何使用JSON实现下拉框联动。

2. 需求说明

    制作如下图所示的页面,页面加载时第一个下拉框显示所有的省的信息,当第一个下拉框选择数据后,第二个下拉框中显示对应省份的城市数据。

 3. 实现思路

        1)设计静态页面;

        2)使用JSON存储省市信息;

        3)页面加载时,遍历JSON数据,并将JSON数据渲染到页面。

4. 实现代码(JS)

        1)首先创建一个省市的数组

        2)show()函数里实现下拉功能,显现各个省的信息

        3)loadCity()函数得先清空下拉框选择,不然会一直增加数据。

        4)在loadCity()函数里设置一个for循环找到省所对应的市。

// JavaScript Document
var city = [
		{"name":"广东省","info":['广州市','深圳市','佛山市', '珠海市']},
		{"name":"四川省","info":['成都市','德阳市','绵阳市','广元市']},
		{"name":"云南省","info":['昆明市','大理市','丽江市']},
		{"name":"贵州省","info":['贵阳市','遵义市']}
	];
function show(){
	for (var i in city){
		document.getElementById("province").innerHTML+="<option>"+city[i].name+"</option>";
	}
} 
function loadCity(){
	/* 1、这个使选择省的时候,市直接跳出
	document.getElementById("city").innerHTML="--请选择--"; */
	// 2、这个使选择省的时候,不会直接跳出市,而是请选择
	document.getElementById("city").options.length=0;//清空下拉框选项
	document.getElementById("city").add(new Option("--请选择--"));
	var province=document.getElementById("province").value;
	for (var i in city){
		if (city[i].name==province){
			var citys=city[i].info;
			for (var j in citys){
				document.getElementById("city").innerHTML+="<option>"+citys[j]+"</option>"
			}
		}
	}
}

5. 运行结果

6. 其他代码(.html)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON实现省市级联</title>
<script src="js/provinceCityJSON.js"></script>
</head>
<style type="text/css">
	select
	{
		width: 100px;
		text-align: center;
		margin: 5px;
		align-content: center;
		margin-top: 30px;
		background-color: #D9FFDC;
	}
</style>
<body onLoad="show()">
	<form>
	<center>
		省份:<select name=" province" id="province"  onchange="loadCity()" required>
			<option>--请选择--</option>
		</select>
		城市:<select name="city" id="city" required>
			<option>--请选择--</option>
		</select>
	</center>
	</form>
</body>
</html>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐