I’m creating a simple stock ticker where the symbols will eventually be entered through a cms. So far I’ve been successful in getting the ajax data correctly, I’m trying to figure out how to split each symbol and it’s corresponding data into separate items, list item or whatever. I’ve attempted using .each but without luck.
Here is my 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);
You want to loop over
data.query.results.rowin youreachDEMO: http://jsfiddle.net/2LkLb/
I would check that
data.query.results.rowexists first. As I remember YQL will also return an error message if for some reason data isn’t acquired.In browser console can inspect the data object, likely a property in it that has something like
status. YQL docs will also help