Javascript 存储函数的变量

Javascript 存储函数的变量,javascript,html,json,Javascript,Html,Json,感谢前面问题的帮助,我能够检索JSON并从中访问信息 最后工作守则供日后参考 <script> var co2; var url="/solarpv/api/co2/list" var jsonObject; $(document).ready(function(){ $.getJSON(url,function(result){ var jsonObject = result; alert(r

感谢前面问题的帮助,我能够检索JSON并从中访问信息

最后工作守则供日后参考

<script> 
    var co2;
    var url="/solarpv/api/co2/list"
    var jsonObject;

    $(document).ready(function(){
       $.getJSON(url,function(result){
          var jsonObject = result;
          alert(result[0].Cumulative_CO2);
          co2 = result[0].Cumulative_CO2;
          alert(co2);
          $('#ajaxRequest').html("An average person uses " + co2 + " pounds of c02");

       });
    }); 
</script>

<h3> Some CO2 Comparisons </h3>
<p style="width:600px;">  </p>
<ul>
    <li>An average person produces 1.98 pounds a day of CO2. </li>
    <li> Plants absorb .0040786 lbs per meter squared per day. </li>
    <li> An average tree absorbs 48.061 pounds of CO2 per year. </li>
    <li id="ajaxRequest"> 
       <script>
          document.write("An average person uses " + co2 + " pounds of c02");
       </script>
    </li>
</ul>

var-co2;
var url=“/solarpv/api/co2/list”
var-jsonObject;
$(文档).ready(函数(){
$.getJSON(url、函数(结果){
var jsonObject=结果;
警报(结果[0]。累积二氧化碳);
co2=结果[0]。累积co2;
警报(二氧化碳);
$('#ajaxRequest').html(“普通人使用“+co2+”磅co2”);
});
}); 
一些二氧化碳比较
宽度:600px;“>

  • 一个人平均每天产生1.98磅的二氧化碳
  • 植物每天每平方米吸收0.0040786磅
  • 一棵树平均每年吸收48.061磅二氧化碳
  • 记录。写下(“一个普通人使用“+co2+”磅co2”);
然而,当我将结果存储在一个名为
co2
var
中,然后在我的html中像这样使用它时 它在我的页面上为co2变量打印
未定义的

两个警报<代码>警报(结果:累积CO2)
警报(co2)打印相同的内容,因此出于某种原因,co2在离开函数时没有保持其值。任何指点都将不胜感激

更新


这就是URL调用的返回值
[{“累计二氧化碳”:“406465.968076”,“年”:“2013”,“月”:“3”,“日”:“30”}]

传递给
ready()
的函数在构建DOM之后才会运行

getJSON
将发送一个HTTP请求,然后完成(允许继续执行)。传递给
getJSON()
的函数在收到HTTP响应之前不会运行

在这两个事件都发生之前,您将无法使用响应数据。在此之前,它将是未定义的


移动使用数据的逻辑,使其位于传递给
getJSON
的函数中。这就是在那里有一个回调函数的意义。

传递给
ready()
的函数在构建DOM之前不会运行

getJSON
将发送一个HTTP请求,然后完成(允许继续执行)。传递给
getJSON()
的函数在收到HTTP响应之前不会运行

在这两个事件都发生之前,您将无法使用响应数据。在此之前,它将是未定义的


移动使用数据的逻辑,使其位于传递给
getJSON
的函数中。这就是在那里有一个回调函数的意义。

加载完$.getJSON后,只需将变量注入到段落中即可。这样,一旦存储了对象并创建了co2,jQuery就会将语句更改为所需的适当内容,并插入变量。这里有一个例子

<script> 
    var co2;
    $(document).ready(function(){
       $.getJSON(url,function(result){
          var jsonObject = result;
          alert(result.Cumulative_CO2);
          co2 = result.Cumulative_CO2;
          $('p').html('random co2 fact here ' + co2 + ' pounds of c02');
       });
    }); 
</script>

var-co2;
$(文档).ready(函数(){
$.getJSON(url、函数(结果){
var jsonObject=结果;
警报(结果:累积CO2);
co2=结果。累积的co2;
$('p').html('此处为随机co2事实'+co2+'磅co2');
});
}); 
  • 这是未经测试的代码,但它非常简单,应该可以工作

加载完$.getJSON后,只需将变量插入到段落中即可。这样,一旦存储了对象并创建了co2,jQuery就会将语句更改为所需的适当内容,并插入变量。这里有一个例子

<script> 
    var co2;
    $(document).ready(function(){
       $.getJSON(url,function(result){
          var jsonObject = result;
          alert(result.Cumulative_CO2);
          co2 = result.Cumulative_CO2;
          $('p').html('random co2 fact here ' + co2 + ' pounds of c02');
       });
    }); 
</script>

var-co2;
$(文档).ready(函数(){
$.getJSON(url、函数(结果){
var jsonObject=结果;
警报(结果:累积CO2);
co2=结果。累积的co2;
$('p').html('此处为随机co2事实'+co2+'磅co2');
});
}); 
  • 这是未经测试的代码,但它非常简单,应该可以工作

二氧化碳上升到大气中并形成空洞。@jandy我想是的too@Mike:那是不可能的。至少根据您显示的JSON响应。您所显示的是一个数组,因此它将是
结果[0]。累积二氧化碳。但我想表达的主要观点是,发布经过验证的实际代码,以正确表示问题。更好!:-)实际上,您可以通过发出“同步”AJAX请求来实现这一点。换言之,在请求完成之前一直阻塞的请求。但通常不建议这样做。下面的解决方案更好。带有代码示例的一个可以工作。只需在目标
  • 元素上放置一个ID属性,然后将答案中的代码从
    $(“p”).html(…
    更改为
    $(“#your#ID”).html(…
    成功了!天哪。感谢你一直陪伴着我,一个盲目地跌跌撞撞的人,因为二氧化碳上升到大气中,并造成了很多洞。@jandy,我想是的too@Mike:这是不可能的。至少根据您显示的JSON响应。您显示的是一个数组,因此它将是
    result[0].Cumulative_CO2
    。但我想表达的主要观点是,发布您已验证为正确表示问题的实际代码。更好!:-)您实际上可以通过创建“同步”来实现这一点AJAX请求。换句话说,在请求完成之前一直阻塞的请求。但通常不建议这样做。下面的解决方案更好。带有代码示例的解决方案会起作用。只需在目标
  • 元素上添加ID属性,然后将答案中的代码从
    $(“p”).html(…
    更改为
    $(“#your_id”).html(…
    成功了!老天爷。感谢你一直支持我,因为我是一个盲目的绊脚石。我不认为我真的需要使用AJAX,它只是我在搜索web时发现的最好的解决方案。如果有更好的方法重试的话