使用Yahoo Finance检索股票更新

时间:2013-04-18 14:28:03

标签: jquery yahoo-finance stockquotes

基本上我正在尝试的是检索特定公司的股票报价。在我的代码中,我在文本框(symb)中给出特定公司的符号(例如:FB ),当我点击按钮(getupdate)它应列出有关我输入文本框的特定股票的详细信息。

这是我的代码:

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(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('<li id="' + key + '">' + val + '</li>');

            });
            $('<ul/>', { 'class': 'my-new-list', html: items.join('')}).appendTo('body');
        });
});
});
</script>

</head>
<body>
<div style="padding:16px;">
    Stock Ticker : <input id="symb" type="textbox" value="Ticker"></input>
</div>
<button id="getupdate" name = "getupdate" type="button">Get Updates!</button>
</body>
</html>

我哪里错了?

提前致谢。

4 个答案:

答案 0 :(得分:2)

您的JS代码中有几个错误:

  1. 按钮选择器不正确:$('getupdate') =&gt; $('#getupdate');
  2. url值内的错误引号;
  3. 错误的查询字符串到Yahoo API;
  4. 错误的评论标志\\For Example:FB
  5. 你的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('<li id="' + key + '">' + val + '</li>');
    
                    });
                    $('<ul/>', { 'class': 'my-new-list', html: items.join('')}).appendTo('#results');
                });
        });
    });
    

    请在HTML中<button>标记之后添加此代码。这将有助于您在新查询之前轻松清除结果:

    <div id="results"></div>
    

    以下是一个示例:http://jsfiddle.net/6EFqk/1/

    我不确定输出格式是否正确,请根据需要重新格式化。

答案 1 :(得分:1)

首先,您没有正确选择按钮。

$('#getupdate').click(function() {

其次,你的斜线是向后评论,他们总是向前不回。

//For Example:FB

最后,由于服务的原因,你没有得到任何结果:

  

目前的表'yahoo.finance.quotes'已被屏蔽。它超过了时间或指令的分配配额

http://jsfiddle.net/RVFW3/

答案 2 :(得分:0)

我刚刚发现此流正在对该主题进行谷歌搜索。

也许这个网站会回答你的问题... http://bitbenderz.com/stockticker/

答案 3 :(得分:0)

以下是解决方案的一个版本:jsfiddle

$.getJSON(yqlUrl1, function(data){
    $.each(data.query.results.row, function(index, item){

    var element = $('<div></div>');

    element.append('<span>' + item.symbol + '</span> ');
    element.append('<span>' + item.price + '</span> ');

    if (item.change.indexOf('+') > -1) {
        element.append('<span class="stockUp"> ' + item.change + '</span>');
    } else {
        element.append('<span class="stockDown"> ' + item.change + '</span>');
    }

    element.appendTo('#quotes');   
    });
})