使用Yahoo Finance检索股票更新
基本上我正在尝试做的是检索特定公司的股票报价。 在我的代码中,我在文本框(symb)中给出特定公司的符号( 例如:FB ),当我点击按钮(getupdate)时,它应列出有关我输入文本框的特定股票的详细信息。
这是我的代码:
$(document).ready(function($){ $('getupdate').click(function() { var symbol = $('input[id=symb]').val(); \\For Example:FB var url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20WHERE%20symbol%3D'+symbol+'&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"; $.getJSON(url, function(data) { var items = []; $.each(data.query.results.quote, function(key, val) { items.push('' + val + ' '); }); $('
', { 'class': 'my-new-list', html: items.join('')}).appendTo('body'); }); }); }); Stock Ticker :
我哪里错了?
提前致谢。
您的JS代码中有几个错误:
- 按钮的选择器不正确:
$('getupdate')
=>$('#getupdate')
; -
url
值内的引号错误; - 错误的查询字符串到Yahoo API;
- 错误的评论标志
\\For Example:FB
。
你的JS应该是这样的:
jQuery(document).ready(function($){ $('#getupdate').click(function() { var symbol = $('input[id=symb]').val(); var url = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%3D%22' + symbol + '%22&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback='; $.getJSON(url, function(data) { var items = []; $('#results').html(''); $.each(data.query.results.quote, function(key, val) { items.push('' + val + ' '); }); $('
', { 'class': 'my-new-list', html: items.join('')}).appendTo('#results'); }); }); });
请在HTML中的标记后添加此代码。 这将有助于您在新查询之前轻松清除结果:
这是一个例子: http : //jsfiddle.net/6EFqk/1/
我不确定输出格式是否正确,请根据需要重新格式化。
首先,您没有正确选择按钮。
$('#getupdate').click(function() {
其次,你的斜线是向后评论,他们总是向前不回。
//For Example:FB
最后,由于服务的回馈,您没有得到任何结果:
当前表’yahoo.finance.quotes’已被阻止。 它超过了时间或指令的分配配额
我刚刚发现这个流在这个主题上进行谷歌搜索。
也许这个网站会回答你的问题… http://bitbenderz.com/stockticker/
这是解决方案的一个版本: jsfiddle
$.getJSON(yqlUrl1, function(data){ $.each(data.query.results.row, function(index, item){ var element = $(''); element.append('' + item.symbol + ' '); element.append('' + item.price + ' '); if (item.change.indexOf('+') > -1) { element.append(' ' + item.change + ''); } else { element.append(' ' + item.change + ''); } element.appendTo('#quotes'); }); })