2

我对实际使用 API、获取 JSON 数据并将其放入实际的 HTML 文件并使结果看起来很漂亮是全新的。

我擅长 HTML/CSS/jQuery。但它似乎不是 jQuery 的深度(我可以做基础)

这是我从 Weather Underground 的 API 返回的 JSON 数据的示例

    "current_observation": {
    "image": {
    "url":"http://icons-ak.wxug.com/graphics/wu2/logo_130x80.png",
    "title":"Weather Underground",
    "link":"http://www.wunderground.com"
    },
    "display_location": {
    "full":"Bowling Green, KY",
    "city":"Bowling Green",
    "state":"KY",
    "state_name":"Kentucky",
    "country":"US",
    "country_iso3166":"US",
    "zip":"42101",
    "latitude":"37.02899933",
    "longitude":"-86.46366119",
    "elevation":"154.00000000"
    }

我可以从这个display_location里面看到current_observation

我想拉出并full在我的网站上显示为 h1(我实际上想要做更多的信息,但我觉得在我把它写下来之后我可以处理剩下的事情。)

所以这是我目前所拥有的:

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    </head>
    <body>
        <section id="area"></section>
    </body>
    <script type="text/javascript">
        $().ready(function(){ 
            $.getJSON("http://api.wunderground.com/api/[MY API KEY]/conditions/q/autoip.json",
            function(data){
                $.each(data){
                    content = '<h1>' + json.current_observation.display_location.full + '</h1>';
                    $(content).appendTo("#area");
                 });
              });
           });
    </script>
</html>

这没用 :-/

任何帮助都很棒。

4

2 回答 2

1

看这个:

content = '<h1>' + json.current_observation.display_location.full + '</h1>';

json指的是什么??也是$.each(data){无效的语法。请参阅文档。你的each循环应该看起来像

$.each(data, function(i, json) {
    content = '<h1>' + json.current_observation.display_location.full + '</h1>';
    $(content).appendTo("#area");
});

如果data返回的是一个对象数组,就像问题中包含的那样,这将起作用。你应该console.log(data)看到它的形式..你可以消除each循环并使用

content = '<h1>' + data.current_observation.display_location.full + '</h1>';
于 2012-05-24T16:34:06.080 回答
-1

这似乎是一个无用的括号。尝试 :

$().ready(function(){ 
        $.getJSON("http://api.wunderground.com/api/[MY API KEY]/conditions/q/autoip.json",
        function(data){
            $.each(data){
                content = '<h1>' + json.current_observation.display_location.full + '</h1>';
                $(content).appendTo("#area");
             } // Change here
          });
       });
于 2012-05-24T16:29:03.713 回答