使用JavaScript实现一个简单的天气预报小程序|青训营

316 阅读2分钟

一、项目背景与目标

本文将创建一个简单的天气预报小程序,该程序能根据用户输入的城市名称,返回该城市的天气信息。我们将使用JavaScript、HTML和CSS来实现这个功能,锻炼我们的前端开发技能。

二、技术需求

  1. JavaScript基础知识,包括变量、函数、对象等。
  2. AJAX技术,用于实现与天气API的交互。
  3. DOM操作,用于从用户输入获取城市信息,并展示天气信息。

三、开发流程

  1. 创建HTML文件,设置输入框和按钮,以便用户输入城市名称并查询天气。
  2. 在JavaScript文件中,首先获取用户输入的城市名称,然后使用AJAX技术向天气API发送请求。
  3. 对API返回的数据进行处理,提取出我们需要的天气信息。
  4. 使用DOM操作将天气信息展示在页面上。

四、详细步骤与代码

  1. 创建HTML文件,设置输入框和按钮:
html复制代码
	<!DOCTYPE html>  

	<html>  

	<head>  

	    <title>天气预报小程序</title>  

	    <link rel="stylesheet" type="text/css" href="style.css">  

	</head>  

	<body>  

	    <input type="text" id="city-input" placeholder="请输入城市名">  

	    <button id="query-btn">查询天气</button>  

	    <div id="weather-info"></div>  

	    <script src="script.js"></script>  

	</body>  

	</html>
  1. 创建JavaScript文件,获取用户输入,向API发送请求,处理返回数据并展示天气信息:
javascript复制代码
	document.getElementById("query-btn").addEventListener("click", function() {  

	    // 获取用户输入的城市名称  

	    var cityInput = document.getElementById("city-input").value;  

	    // 向天气API发送请求,获取天气信息  

	    var weatherApi = "http://api.openweathermap.org/data/2.5/weather?q=" + cityInput + "&appid=your_appid";  

	    fetch(weatherApi).then(function(response) {  

	        return response.json();  

	    }).then(function(data) {  

	        // 处理返回的数据,提取出天气信息  

	        var weatherInfo = data.weather[0].main;  

	        // 将天气信息展示在页面上  

	        var weatherElement = document.getElementById("weather-info");  

	        weatherElement.innerText = weatherInfo;  

	    }).catch(function(error) {  

	        console.error("Error:", error);  

	    });  

	});
  1. 创建CSS文件,设置页面的样式:
css复制代码
	body {  

	    font-family: Arial, sans-serif;  

	}  

	#city-input {  

	    width: 200px;  

	}  

	#query-btn {  

	    margin-left: 5px;  

	}  

	#weather-info {  

	    font-size: 20px;  

	    margin-top: 20px;  

	}

五、测试与优化

你可以在浏览器中打开HTML文件,输入一个城市名称,点击查询按钮,页面将展示该城市的天气信息。注意需要提前在openweathermap网站上注册一个API key,替换代码中的"your_appid"。如果需要查询更多城市的信息,可以在API的地址中添加"&appid=your_appid&q[]=city1&q[]=city2",其中city1和city2是需要查询的城市名称。