迭代 JSON 对象时出现的问题
2010-07-12
279
在下面的代码中,我尝试迭代 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"
。这主要是出于性能//访问原因,所以业力更好。
jAndy
2010-07-12
您的代码正在迭代,但您正在附加“+item.temperature+”,您不想执行类似
$("body").append("Temp is " + item.temperature);
或
$("body").append(item.temperature);
的操作吗?
Rebecca Chernoff
2010-07-12
"+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);
});
gblazex
2010-07-12