0

シンボルが最終的にcmsを介して入力される単純な株式ティッカーを作成しています。これまでのところ、ajax データを正しく取得することに成功しています。各シンボルを分割する方法と、対応するデータを個別の項目、リスト項目などに分割する方法を理解しようとしています。私は .each を使用しようとしましたが、運がありませんでした。

これが私のjsです:

(function(){
var getStocks = (function(){

    var initialize = function(){
        _setListeners();
    };

    var _setListeners = function(){

            var symbol = ["GOOG", "AAPL", "A", "AA", "ABT"];

        $.ajax({
            url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3D"+symbol+"%26f%3Dnsl1d1t1c1ohgv%26e%3D.csv'%20and%20columns%3D'name%2Csymbol%2Clast_trade_price%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Ccol2'&format=json",
            dataType: 'json',
        success: function(data) { 
            console.log(data);
            var name = data.query.results.row.name;
            var last_trade = data.query.results.row.last_trade_price;
            var last_trade_size = data.query.results.row.time;
            var change = data.query.results.row.low;

            $.each(data, function(index, value) {
                $("#stock").append('Name:'+name+ 'Symbol:' +symbol+ 'Last Trade:' +last_trade+ 'Last Trade Size:' +last_trade_size+ 'Change:'+change);
            });

    },
        error: function() {
            $("#stock").html('<p>Something has gone terribly wrong.</p>');
        }
    });

};
    //call initialize
    return {init: initialize};
}());
//call headerNav
this.getStocks = getStocks;
}).call(this);
4

1 に答える 1

0

あなたdata.query.results.rowはあなたのeach

var symbol = ["GOOG", "AAPL", "A", "AA", "ABT"];

$.ajax({
  url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3D" + symbol + "%26f%3Dnsl1d1t1c1ohgv%26e%3D.csv'%20and%20columns%3D'name%2Csymbol%2Clast_trade_price%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Ccol2'&format=json",
  dataType: 'json',
  success: function (data) {
    console.log(data);


    $.each(data.query.results.row, function (index, item) {
      $("body").append('Name:' + item.name + 'Symbol:' +item. symbol + 'Last Trade:' + item.last_trade_price + 'Last Trade Size:' + item.last_trade_size + 'Change:' + item.change+'<br><br><br>');
    });

  },
  error: function () {
    $("#stock").html('<p>Something has gone terribly wrong.</p>');
  }
});

デモ: http://jsfiddle.net/2LkLb/

最初に存在することを確認しdata.query.results.rowます。なんらかの理由でデータが取得されなかった場合にも、YQL はエラー メッセージを返します。

ブラウザ コンソールでデータ オブジェクトを調べることができますstatus。YQL ドキュメントも役立ちます

于 2013-01-14T01:56:01.603 に答える