使用JSONP值jQuery </div>更新<div>

时间:2013-05-02 16:40:12

标签: javascript jquery html json

我从名为World Weather Online

的服务中获取温度

我正在尝试将天气更新为我的<span>内容,如下所示:(我的所有值都正确,只是在我打开页面时不会更改值)

<div class="temperature">
    <span>Washington, USA</span>
    <span id=temp>Temperature</span>
</div>
<script type="text/javascript">
    var uri = "http://api.worldweatheronline.com/free/v1/weather.ashx?q=washington&format=json&num_of_days=1&date=today&key=dfghjkiuytdfghjkj";
    var temp = 0
    $.get(uri, function(r,status) {
        current_temp_C = r.data.current_condition[0].temp_C;
        temp = r.data.current_condition[0].temp_C;
    }, "jsonp")
    $('#temp').text("hola " + temp)
</script>

我知道这可能不是我能做到的最好的方式,但任何想法?

3 个答案:

答案 0 :(得分:1)

$('#temp').text("hola " + temp)应该在get callback中

var uri = "http://api.worldweatheronline.com/free/v1/weather.ashx?q=washington&format=json&num_of_days=1&date=today&key=dfghjkiuytdfghjkj"     
var temp = 0    ;                                                                                                                                                                                                                                                        
$.get(uri, function(r,status) {                                                                                                                                                 
    current_temp_C = r.data.current_condition[0].temp_C;                                                                                              
    temp = r.data.current_condition[0].temp_C;                                                                                                        
    $('#temp').text("hola " + temp)       
}, "jsonp")                                                                                                                                       

答案 1 :(得分:0)

由于它回复了XML,您可能需要先解析它。我不确定你需要的确切标签,但你可以试试这个。

var uri = "http://api.worldweatheronline.com/free/v1/weather.ashx?q=washington&format=json&num_of_days=1&date=today&key=dfghjkiuytdfghjkj"

$.get(uri, function(data) {
var xml = $.parseXML(data);
var tempc= xml.find("temp_C").text();
$('#temp').text("hola " + tempc);
});

检查浏览器中的网址,看看哪个标记提供了信息。然后简单地在xml.find(“标签”)的行上.text();应该给你结果。

答案 2 :(得分:0)

请检查以下代码我没有经过测试,但可能是因为你的问题已经用完了......

$.ajax({
    type: "GET",
    url: "http://api.worldweatheronline.com/free/v1/weather.ashx?q=washington&format=json&num_of_days=1&date=today&key=dfghjkiuytdfghjkj"                   
    dataType: "jsonp",
    success: function (data) 
    {
        current_temp_C = r.data.current_condition[0].temp_C;                                                                                              
        temp = r.data.current_condition[0].temp_C;                        
        $('#temp').text("hola " + temp)
    },
    error: function (xhr, status, error) { console.log("An Error Occured " + error); }
});