从函数中存储一个变量

Storing a Var from a function

本文关键字:一个 变量 函数 存储      更新时间:2023-09-26

感谢对早期问题的帮助,我能够检索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>

然而,当我将结果存储在称为co2var中,然后在我的html中像这样使用它它打印undefined的二氧化碳变量在我的页面上。

两个警报alert(result.Cumulative_CO2);alert(co2);打印相同的东西,所以由于某种原因co2在离开函数时没有保持其值。如能指点,不胜感激。

更新

URL返回[{"Cumulative_CO2":"406465.968076","Year":"2013","Month":"3","Day":"30"}]

当$。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>
    这是未经测试的代码,但它是相当简单,应该工作。

传递给ready()的函数直到DOM构造完成后才会运行。

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

在这两个事件发生之前,您将无法使用响应数据。在那之前,它将是undefined

移动使用数据的逻辑,使其位于传递给getJSON的函数内。