用ajax查询天气

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            
            .box {
                width: 500px;
                margin: 100px auto;
                overflow: hidden;
            }
            
            input {
                outline: none;
                border: none;
                height: 30px;
                float: left;
            }
            
            input[type=text] {
                width: 80%;
                text-align: center;
            }
            
            input[type=button] {
                width: 20%;
                color: #fff;
                font: 400 15px/30px "微软雅黑";
            }
            
            ul {
                margin-top: 35px;
            }
            
            ul,
            li {
                list-style: none;
                width: 100%;
            }
            
            li {
                background-color: #fff;
                border-radius: 5px;
                margin-bottom: 5px;
            }
            
            li>span {
                display: block;
                width: 33.3333333%;
                height: 30px;
                line-height: 30px;
                text-align: center;
                float: left;
                background: lightblue;
            }
        </style>
        <title>天气预报</title>
    </head>

    <body bgcolor="#f3f4f5">
        <div class="box">
            <input type="text" placeholder="请输入你要查询的城市" />
            <input type="button" value="查询" />
            <ul>
            </ul>
        </div>
    </body>
    <script type="text/javascript">
        $(function() {
            var $texts = $("input[type=text]");
            var $btn = $("input[type=button]");
            var str = "";

            $texts.on("focus", function() {
                $texts.val("").css("color", "#aaa");
            });
            $btn.on("click", function() {
                str = $texts.val();
                if(str.length > 0) {
                    str = encodeURIComponent(str);
                    $.ajax({
                        dataType: "jsonp",
                        type: "get",
                        url: "http://v.juhe.cn/weather/index?format=2&cityname=" + str + "&key=9817f1436de8051a9b635799dcb63f27",
                        success: function(data) {
                            var data = data.result.future;
                            console.log(data);
                            for(var i = 0; i < data.length; i++) {
                                var time = "<span>" + data[i].date + "</span>";
                                var temperature = "<span>" + data[i].temperature + "</span>";
                                var weather = "<span>" + data[i].weather + "</span>";
                                var liS = "<li>" + time + temperature + weather + "</li>";
                                $("ul").append(liS);
                            }
                        }
                    });
                } else {
                    $texts.val("WRONG!").css("color", "red");
                }
            });
        })
    </script>

</html>

 

结果是这样的:

 

转载于:https://www.cnblogs.com/rlann/p/6253683.html

### 使用Ajax实现天气查询功能 为了通过Ajax实现天气查询功能,可以采用XMLHttpRequest对象来发送HTTP请求并接收响应数据。下面是一个简单的例子,展示如何设置`Content-Type`为`application/json`以及构建一个用于获取天气信息的GET请求。 ```javascript function getWeather(cityName) { var xhr = new XMLHttpRequest(); xhr.open("GET", "https://api.example.com/weather?q=" + cityName, true); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(JSON.parse(xhr.responseText)); } }; xhr.setRequestHeader('Content-Type', 'application/json')[^1]; xhr.send(null); } ``` 需要注意的是,在实际开发过程中应当替换上述URL中的`https://api.example.com/weather?q=`部分为真实的API端点地址,并确保该服务支持跨域资源共享(CORS),以便能够成功发起请求和解析返回的数据。 对于现代浏览器环境下的应用开发而言,推荐使用更简洁易用的Fetch API替代传统的XHR方式: ```javascript async function fetchWeatherData(cityName){ try{ let response = await fetch(`https://api.example.com/weather?q=${cityName}`); if(!response.ok){ throw new Error('Network response was not ok'); } const data = await response.json(); console.log(data); }catch(error){ console.error('There has been a problem with your fetch operation:', error); } } ``` 此方法不仅简化了异步操作流程,还提供了更好的错误处理机制和支持Promise特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值