当前位置:首页 > JavaScript

js实现天气

2026-03-14 00:08:07JavaScript

使用 JavaScript 实现天气功能

获取天气 API

选择一个可靠的天气 API 服务,如 OpenWeatherMap、WeatherAPI 或 AccuWeather。这些服务通常提供免费的开发套餐,适合小型项目。注册账号后获取 API 密钥。

发起 API 请求

使用 fetchaxios 发起 HTTP 请求获取天气数据。以下是使用 fetch 的示例代码:

const apiKey = 'YOUR_API_KEY';
const city = 'Beijing';
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`;

fetch(url)
  .then(response => response.json())
  .then(data => {
    console.log(data);
    displayWeather(data);
  })
  .catch(error => console.error('Error:', error));

解析并显示天气数据

从 API 返回的数据中提取所需信息,如温度、湿度、天气描述等,并将其显示在页面上。

js实现天气

function displayWeather(data) {
  const weatherDiv = document.getElementById('weather');
  const temp = data.main.temp;
  const humidity = data.main.humidity;
  const description = data.weather[0].description;

  weatherDiv.innerHTML = `
    <h3>Weather in ${data.name}</h3>
    <p>Temperature: ${temp}°C</p>
    <p>Humidity: ${humidity}%</p>
    <p>Description: ${description}</p>
  `;
}

处理用户输入

允许用户输入城市名称并触发天气查询。可以通过表单和事件监听器实现。

document.getElementById('weatherForm').addEventListener('submit', function(e) {
  e.preventDefault();
  const city = document.getElementById('cityInput').value;
  getWeather(city);
});

错误处理

确保在 API 请求失败或用户输入无效时提供友好的错误提示。

js实现天气

function getWeather(city) {
  fetch(url)
    .then(response => {
      if (!response.ok) {
        throw new Error('City not found');
      }
      return response.json();
    })
    .then(data => displayWeather(data))
    .catch(error => {
      document.getElementById('weather').innerHTML = `<p>${error.message}</p>`;
    });
}

示例 HTML 结构

以下是一个简单的 HTML 结构,用于显示天气信息和用户输入表单。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Weather App</title>
</head>
<body>
  <form id="weatherForm">
    <input type="text" id="cityInput" placeholder="Enter city name" required>
    <button type="submit">Get Weather</button>
  </form>
  <div id="weather"></div>
  <script src="weather.js"></script>
</body>
</html>

完整代码示例

将上述代码整合到一个文件中,确保替换 YOUR_API_KEY 为实际的 API 密钥。

// weather.js
document.getElementById('weatherForm').addEventListener('submit', function(e) {
  e.preventDefault();
  const city = document.getElementById('cityInput').value;
  getWeather(city);
});

function getWeather(city) {
  const apiKey = 'YOUR_API_KEY';
  const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`;

  fetch(url)
    .then(response => {
      if (!response.ok) {
        throw new Error('City not found');
      }
      return response.json();
    })
    .then(data => displayWeather(data))
    .catch(error => {
      document.getElementById('weather').innerHTML = `<p>${error.message}</p>`;
    });
}

function displayWeather(data) {
  const weatherDiv = document.getElementById('weather');
  const temp = data.main.temp;
  const humidity = data.main.humidity;
  const description = data.weather[0].description;

  weatherDiv.innerHTML = `
    <h3>Weather in ${data.name}</h3>
    <p>Temperature: ${temp}°C</p>
    <p>Humidity: ${humidity}%</p>
    <p>Description: ${description}</p>
  `;
}

通过以上步骤,可以实现一个简单的天气查询功能。根据需求可以进一步扩展,如添加图标、更多天气细节或缓存机制。

标签: 天气js
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…