jquery和雅虎的yql服务实现天气预报服务示例


Posted in Javascript onFebruary 08, 2014

本代码不涉及任何后端开发代码(如.Net,JAVA等)。目前最权威的天气预报数据是中国天气网(http://www.weather.com.cn/),因为这个是官方提供的气象数据,除了商业的增值服务外,还提供了免费的以JSON数据格式返回的气象数据,以查看杭州的天气数据为例,可以输入以下地址:http://m.weather.com.cn/data/101210101.html ,返回的JSON数据格式如下图:

YQL服务可以实现对网上不同数据源的query,filter,combine(查询,过滤,合并),提供类似SQL,具体地址如下:http://developer.yahoo.com/yql/console/ 。当实施查询的时候,YQL服务就会访问网络上的数据源,传输数据,返回XML或者JSON形式的数据结果。YQL可以使用许多类型的数据源,包括Yahoo!Web services 或者其他的网络服务,和网络数据类型例如:HTML, XML, RSS,和Atom。

因此可以通过两者的结合使用,完成天气预报功能的开发,具体JS代码如下:

jquery和雅虎的yql服务实现天气预报服务示例

function getWeather() {             $.getJSON("http://query.yahooapis.com/v1/public/yql", {
                 q: "select * from json where url=\"http://m.weather.com.cn/data/101210101.html\"",
                format: "json"
            }, function (data) {
                if (data.query.results) {
                    //$("#content").text(JSON.stringify(data.query.results));
                    var J_data = JSON.parse(JSON.stringify(data.query.results));
                     //alert(J_data.weatherinfo.city);
                       $("#content").append("<p>"+J_data.weatherinfo.city+"天气预报(数据来源中国天气网)"+"</p>");
                     $("#content").append("<p>"+J_data.weatherinfo.date_y+" "+J_data.weatherinfo.week+" "+J_data.weatherinfo.temp1+" "+J_data.weatherinfo.weather1+" "+J_data.weatherinfo.wind1+" "+J_data.weatherinfo.index+" "+J_data.weatherinfo.index_d+"</p>");
                     var t= J_data.weatherinfo.date_y;
                     t=t.replace("年","/");
                     t=t.replace("月","/");
                     t=t.replace("日","");

                     var tdy = new Date(t);  
                     var t2 = new Date();       
                   
                      t2.setDate(tdy.getDate()+1);
                    
                      $("#content").append("<p>"+ t2.Format("yyyy年MM月dd日")+" "+getweekdays(t2)+" "+J_data.weatherinfo.temp2+" "+J_data.weatherinfo.weather2+" "+J_data.weatherinfo.wind2+"</p>");
                       var t3 = new Date();
                      t3.setDate(tdy.getDate()+2);
                      $("#content").append("<p>"+t3.Format("yyyy年MM月dd日")+" "+getweekdays(t3)+" "+J_data.weatherinfo.temp3+" "+J_data.weatherinfo.weather3+" "+J_data.weatherinfo.wind3+"</p>");
                      var t4 = new Date();
                      t4.setDate(tdy.getDate()+3);
                      $("#content").append("<p>"+t4.Format("yyyy年MM月dd日")+" "+getweekdays(t4)+" "+J_data.weatherinfo.temp4+" "+J_data.weatherinfo.weather4+" "+J_data.weatherinfo.wind4+"</p>");
                      var t5 = new Date();
                      t5.setDate(tdy.getDate()+4);
                      $("#content").append("<p>"+t5.Format("yyyy年MM月dd日")+" "+getweekdays(t5)+" "+J_data.weatherinfo.temp5+" "+J_data.weatherinfo.weather5+" "+J_data.weatherinfo.wind5+"</p>");
                      var t6 = new Date();
                      t6.setDate(tdy.getDate()+5);
                      $("#content").append("<p>"+t6.Format("yyyy年MM月dd日")+" "+getweekdays(t6)+" "+J_data.weatherinfo.temp6+" "+J_data.weatherinfo.weather6+" "+J_data.weatherinfo.wind6+"</p>");
 
                     //alert(getweekdays(t2)); 
                } else {
                     $("#content").text('no such code: ' + code);
                 }
             });
          //$.getJSON("http://m.weather.com.cn/data/101210101.html", null, function(json) { alert(json); });             
        }
        function getweekdays(datey)
        {
           if(datey.getDay()==0)
           {
             return "星期日";
           }
           else if(datey.getDay()==1)
           {
              return "星期一";
           }
           else if(datey.getDay()==2)
           {
              return "星期二";
           }
           else if(datey.getDay()==3)
           {
              return "星期三";
           }
           else if(datey.getDay()==4)
           {
              return "星期四";
           }
           else if(datey.getDay()==5)
           {
              return "星期五";
           }
           else if(datey.getDay()==6)
           {
              return "星期六";
           }
 
        }

最终实现的效果,如下图:

jquery和雅虎的yql服务实现天气预报服务示例

Javascript 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(2)
Dec 23 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
jQuery function的正确书写方法
Aug 02 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
Mar 27 Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 Javascript
javascript中使用未定义变量或值的情况分析
Jul 19 Javascript
Javascript blur与click冲突解决办法
Jan 09 Javascript
js时间戳格式化成日期格式的多种方法介绍
Feb 16 Javascript
JS简单获得节点元素的方法示例
Feb 10 Javascript
详解Webpack + ES6 最新环境搭建与配置
Jun 04 Javascript
vue实现跨域的方法分析
May 21 Javascript
bootstrap-paginator服务器端分页使用方法详解
Feb 13 Javascript
遍历DOM对象内的元素属性示例代码
Feb 08 #Javascript
JS的参数传递示例介绍
Feb 08 #Javascript
js控制分页打印、打印分页示例
Feb 08 #Javascript
javascript中的self和this用法小结
Feb 08 #Javascript
javascript中match函数的用法小结
Feb 08 #Javascript
纯JS实现动态时间显示代码
Feb 08 #Javascript
js数字转换为float,取N位小数
Feb 08 #Javascript
You might like
提取HTML标签
2006/10/09 PHP
php可变长参数处理函数详解
2017/02/22 PHP
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
python fabric使用笔记
2015/05/09 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
俞敏洪励志演讲稿
2014/04/29 职场文书
森林病虫害防治方案
2014/06/02 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
教师三严三实心得体会
2014/10/11 职场文书
悬空寺导游词
2015/02/05 职场文书
入党积极分子考察意见
2015/06/02 职场文书
信仰观后感
2015/06/03 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
如何有效防止sql注入的方法
2021/05/25 SQL Server
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL