объект jQuery не определен - PullRequest
0 голосов
/ 27 июня 2009

Извиняюсь за вопрос, что, вероятно, очень очевидный вопрос, я весь день бился с этим + Я очень плохо знаком с JQuery и JavaScript в целом.

Я запускаю следующее: -

<script type="text/javascript">
$(function() {
$.getJSON(
  "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?", 
  function(data) {

$.each(data.query.results.row, function(index, item){
    $('#quotes')
    .append(
      $('<p/>')
        .append($('<span class="left"/>').text(item.symbol))
        .append($('<span class="right"/>').text('$'+item.price))
      );
    });

  }
);

});
</script>

Я получаю неопределенное имя объекта var, i = 0, length = object.length; от firebug - кто-нибудь может мне помочь?

Ответы [ 2 ]

2 голосов
/ 27 июня 2009

Если посмотреть на ответ JSON, data.query.results.row не определено (хотя data.query.results - нет). Итак, вы перебираете неопределенное свойство.

Вы можете прочитать свойства ответа, используя console.log(data) в вашем обратном вызове. Затем загрузите и установите FireBug для Firefox, если вы еще этого не сделали, и проверьте консоль.

1 голос
/ 27 июня 2009

Структура JSON не знает query.results.row, а вместо этого query.results.quote. Это работает:

  console.log(data);
  var quotes = data.query.results.quote;
    for(var q in quotes){
        $('#quotes')
        .append(
          $('<p/>')
            .append($('<span class="left"/>').text(q))
            .append($('<span class="right"/>').text('$'+quotes[q]))
          );
        }
    });

Вы вызываете не ресурс JSON, а ресурс JSONP. Аргумент обратного вызова URL должен быть именем функции, и вы должны использовать $ .getScript.

myCallback = function(jsonData){...}    
$.getScript("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=myCallback");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...