感谢早期问题的帮助,我能够检索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
的{{1}}中,然后在我的html中使用它,就像这样
它在我的页面上为co2变量打印co2
。
警报undefined
和alert(result.Cumulative_CO2);
都会打印相同的内容,因此出于某种原因,co2在离开函数时不会保留其值。任何指针都将非常感激。
更新
这就是URL调用返回alert(co2);
答案 0 :(得分:3)
传递给ready()
的函数在构建DOM之后才会运行。
getJSON
将发送HTTP请求然后完成(允许继续执行)。传递给getJSON()
的函数在收到HTTP响应之前不会运行。
在这两个事件发生之前,您将无法使用响应数据。在此之前它将是undefined
。
移动您使用数据的逻辑,使其位于传递给getJSON
的函数内部。那就是在那里有一个回调函数。
答案 1 :(得分:3)
当$ .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>