查询天气HTML
a
<head>
<meta charset="UTF-8">
<title></title>
<style>
.container {
max-width: 500px;
margin: 50px auto;
padding: 20px;
border: 1px solid #ddd;
border-radius: 10px;
}
.input-group {
margin-bottom: 20px;
}
input {
padding: 8px;
width: 200px;
margin-right: 10px;
}
button {
padding: 8px 16px;
cursor: pointer;
}
.weather-box {
margin-top: 20px;
padding: 15px;
border: 1px dashed #666;
border-radius: 5px;
}
.error {
color: #f00;
}
.loading {
color: #666;
}
</style>
</head>
<body>
<div class="container">
<h2>城市天气查询</h2>
<div class="input-group">
<input type="text" id="city" placeholder="输入城市"/>
<button onclick="queryWeather()">查询</button>
</div>
<div id="result" class="weather-box"></div>
</div>
<script>
//1.定义appkey
const APP_KEY = "55952d0086F645C88F11B9662AC52Dd2";
//2.API地址
const API_URL ="https://route.showapi.com/9-2";
//3.查询天气函数
async function queryWeather(){
const city = document.getElementById("city").value.trim();
const resultDom = document.getElementById("result");
}
//校验输入
if(!city){
resultDom.innerHTML = "<p class = 'error'>请输入城市名称</p>"
return;
}
//显示加载
resultDom.innerHTML = "<p class = 'loading'>正在查询天气...</p>";
try{
//4.构造请求参数(包含appkey和城市)
const params = new URLSearchParams({
appKey:APP_KEY,//核心:传递appkey作为认证参数
area:city,//城市参数(以文档要求为准)
//其他可选参数(如日期·天数。根据API文档添加)
});
//5.调用API
const response = await fetch(`${API_URL}?${params}`);
const data = await response.json();
//6.解析返回数据(根据APL文档的结构调整)
//假设APL成功返回同时 code为0 请以文档为准
if(data.showapi_res_code === 0){
const weatherInfo = data.showapi_res_body;//主体数据
const today = weatherInfo.f1;//当天天气
//拼接展示内容
resultDom.innerHTML = `
<p>城市:${weatherInfo.cityInfo.c4}</p>
<p>日期:${today.day}</p>
<p>天气:${today.day_weather}</p>
<p>温度:${today.day_air_temperature}</p>
<p>风向:${today.night_wind_direction}</p>
<p>化妆指数:${weatherInfo.beauty}</p>
`;
}else{
resultDom.innerHTML = `<p class = 'error'>错误:${data.showapi_res_error||"查询失败"</p>`};
}
}catch(error){
resultDom.innerHTML = `<p class = 'error'>网络错误:${error.message}</p>`;
}
}
window.onload = queryWeather;
</script>
</body>
浙公网安备 33010602011771号