freeCodeCamp-show the loacl weather

2 篇文章 0 订阅
2 篇文章 0 订阅

最近在freeCodeCamp上刷题,刷到了这样一个小页面。具体地址是:show the local weacher.
要求是通过JS获取JSON数据,将天气情况展示在页面上。自己根据它的要求做了 一个简答的界面,主要实现了:

  • 通过ip获取到当前地址,然后根据地址获取到当前天气状况,包括天气现状、温度以及当前天气描述;
  • 也获得了包含当日晚上在内的未来三天的天气的简略信息,包含日期、天气情况以及最高温与最低温。
    ###主要讲一个用jQuery来实现抓取天气JSON数据的实现
  1. 首先是获取到当前用户ip;
    在这个过程中使用的是 jQuery中的$.getJSON(url,[data],[callback]) 方法来实现。它接受三个参数,第一个是 url :发送请求地址;第二个:data 待发送 key/value 数据;第三个:callback 载入成功时回调函数。
    知道参数的意义,就进行设置。利用 http://weixin.jirengu.com/weather/ip 此接口来获取ip。具体实例:
	var userip;
	$.getJSON("http://weixin.jirengu.com/weather/ip", function(useIp) {
		userip = useIp.data;	
		console.log(userip);
		});	

通过此可以在页面输出台中看到本地ip;
2. 提供天气数据的API。这里使用的是和风天气
继续在获取ip成功后,获取天气数据,根据和风天气的官方文档,获取接口地址:免费用户接口,当然你也可以购买使用付费接口。
然后,根据需求选择合适的接口,如下图:
这里写图片描述
这里选择全部天气,并将city 属性值用第一步获取到的ip变量来替换。所以本次的获取天气数据使用的参数 url 应该为url = 'https://free-api.heweather.com/v5/weather?city=' + userip + '&key=yourkey';
走到这一步,下面的就是简单的获取数据。例如获取本地城市的当前温度使用的是 JSON['HeWeather5'][0]["now"]["tmp"];,继而在输出到相应的标签中,可以使用.text()来实现。具体实例为:

	var url = 'https://free-api.heweather.com/v5/weather?city=' + userip + '&key=yourkey';
	$.getJSON(url, function(weathers) {
		nowDegree = weathers['HeWeather5'][0]["now"]["tmp"];  
		//当前温度  
		$('.now-degree').text(nowDegree);  
	});

最后,将第一步中获取IP与第二步中获取天气结合起来,便可以实现此功能。
例如:

$(document).ready(function() {
	var nowDegree;
	var userip = '';
	var url = '';
		//获取用户ip
	$.getJSON("http://weixin.jirengu.com/weather/ip", function(useIp) {
		userip = useIp.data;
		url = 'https://free-api.heweather.com/v5/weather?city=' + userip + '&key=yourkey';
		//进行当前天气状况输出
		$.getJSON(url, function(weathers) {
			nowDegree = weathers['HeWeather5'][0]["now"]["tmp"];
			//当前温度('.now-degree'为p标签类名)
			$('.now-degree').text(nowDegree);
			console.log(nowDegree);
		});
	});
})

获取其他信息同理。只需要在和风天气帮助文档中查找相关数据即可。
我自己做的本案例地址:Show the Local Weather.
欢迎大家提出宝贵意见。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值