原生js、Ajax编写一个天气预报,搜索查询

今天分享的是Ajax,使用Ajax的步骤
1、创建对象
2、创建请求
3、发送请求参数
4、接收响应
接下来是准备工作,可以搜索高德地图开放平台-Web服务API-天气查询。
天气查询是一个简单的HTTP接口,根据用户输入的adcode,查询目标区域当前/未来的天气情况。
使用API前您需先申请Key,若无高德地图API账号需要先申请账号。
在这里插入图片描述
里面有请求方式和参数,key是要自己申请的
在这里插入图片描述
好的,到这里就开始上代码了咯

HTML:

<html>
	<head>
		<meta charset="UTF-8">
		<title>天气预报</title>
		<style>
         .warp{background: #6495ED;width: 150px;}
		</style>
	</head>
	<body>
		<input placeholder="请输入要查询的城市"/>
		<button id="btn">查询</button>
		<p id="city"></p>
		<div class="warp">
			<p class="day"></p>
			<p id="week"></p>
			<p id="temp"></p>
			<p id="weather"></p>
			<p id="wind"></p>
		</div>
<script>
			var inputBox=document.getElementsByTagName("input");
			var btn=document.getElementById("button");
			var city=document.getElementById("city");
			var day=document.getElementsByClassName("day");
			var week=document.getElementById("week");
			var temp=document.getElementById("temp");
			var weather=document.getElementById("weather");
			var wind=document.getElementById("wind");
			btn.onclick=function(){
					city.innerHTML=inputBox.value+"明日天气 : ";
				}
			window.onload=function(){
				var xml=new XMLHttpRequest();
				xml.open("get","https://restapi.amap.com/v3/weather/weatherInfo?key=这里填写你申请的key的值&city=inputBox.value&extensions=all",true);
				xml.send(null);
				xml.onreadystatechange=function(){
					if(xml.readyState==4&&xml.status==200){
						var data=JSON.parse(xml.responseText);
						console.log(data);
						city.innerHTML=data.forecasts[0].city+"明日天气 : ";
						day[0].innerHTML=data.forecasts[0].casts[1].date;
						week.innerHTML="星期"+data.forecasts[0].casts[1].week;
						temp.innerHTML=data.forecasts[0].casts[1].nighttemp+"°C~"+data.forecasts[0].casts[1].daytemp+"°C";
						if(data.forecasts[0].casts[1].dayweather==data.forecasts[0].casts[1].nightweather){
							weather.innerHTML=data.forecasts[0].casts[1].dayweather;
						}else{
							weather.innerHTML=data.forecasts[0].casts[1].dayweather+"转"+data.forecasts[0].casts[1].nightweather;
						}
						wind.innerHTML=data.forecasts[0].casts[1].daywind+"风"+data.forecasts[0].casts[1].daypower+"级";
					}
				}
			}   
		</script>

效果图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43400431/article/details/107762519
今日推荐