2010-07-12 56 views
0

在下面的代码中,我尝试遍历JSON对象字符串。但是,我没有得到所需的输出。我的网页上输出看起来是这样的: -通过遍历JSON对象迭代的问题

+ item.temperature ++ item.temperature ++ item.temperature ++ item.temperature +

输出温度警报效果很好。我尝试通过遍历JSON对象字符串来访问值的部分似乎不起作用。有人能帮我解决这个问题吗?

代码

<body> 

<script> 

$.getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2', 
function(data) { 

      $.each(data.weatherObservations, function(i,item){ 
      $("body").append("+item.temperature+"); 
      if (i == 3) return false; 
      }); 
    alert(data.weatherObservations[0].temperature); 
     }); 

</script> 

</body> 

回答

3

不要在.append()部分内$("body").append("+item.temperature+");使用引号。

应该

$(document.body).append(item.temperature); 

书面方式加上引号像你这样的表达,只是一遍又一遍地增加了string。 Java // Ecmascript将带引号的任何内容解释为字符串文字。

请注意,我也用document.body替换"body"。这主要是表现/ /访问的原因,所以更好的业力。

1

你的代码是通过迭代,但要追加 “+ item.temperature +”,你不想做这样的事情

$("body").append("Temp is " + item.temperature); 

$("body").append(item.temperature); 
0

"+item.temperature+"意味着一个字符串这是"+item.temperature+"

"pre" + item.temperature + "post"将连接变量到字符串。

$.getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2', 
    function (data) { 
    $.each(data.weatherObservations, function (i, item) { 
     $("body").append(item.temperature + ","); 
     if (i == 3) return false; 
    }); 
    alert(data.weatherObservations[0].temperature); 
});