В приведенном ниже коде я попытался перебрать строку объекта 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>
0
leba-lev 12 Июл 2010 в 21:08

3 ответа

Лучший ответ

Не используйте кавычки в $("body").append("+item.temperature+"); в части .append().

Должно быть

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

Написание этого выражения с кавычками, как вы сделали, просто добавляет string снова и снова. Java // Ecmascript интерпретирует что-либо в кавычках как строковый литерал.

Обратите внимание, что я также заменил "body" на document.body. Это в основном связано с производительностью / доступом, поэтому лучше карма.

3
jAndy 12 Июл 2010 в 17:14

"+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);
});
0
gblazex 12 Июл 2010 в 17:18

Ваш код выполняет итерацию, но вы добавляете «+ item.temperam +», вы не хотите делать что-то вроде

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

Или

$("body").append(item.temperature);
1
Rebecca Chernoff 12 Июл 2010 в 17:14