使用jquery提取和显示YQL财务数据并使用.html()显示它

时间:2013-02-04 19:12:59

标签: javascript html json yql

我遇到了.html()函数和YQL拉取数据的问题。数据正在拉动(如果使用YQL控制台,则可以看到数据),但它没有显示或显示任何结果。

以下是代码:

HTML

<ul id="TECO-container">
    <li class="high">High: </li>
    <li class="low">Low: </li>
    <li class="close">Closing: </li>
    <li class="volume">Volume: </li>
</ul>

JS

// initialise plugins
jQuery(function () {
    tecoGetQuote('TECO');
});

//The above function is on a different .js than the below script.

var tecoGetQuote = function (symbol) {
    var yqlURL = "http://query.yahooapis.com/v1/public/yql?q=";
    var dataFormat = "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
    var realtimeQ = yqlURL + "select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + symbol + "%22)%0A%09%09&" + dataFormat;
    $(function () {
        $.getJSON(realtimeQ, function (json) { //YQL Request
            //console.log(json.query.results.quote);
            //<li class="high">High: -</li><li class="low">Low: -</li><li class="close">Closing: -</li><li class="volume">Volume: -</li>
            $('#TECO-container .high').html('High: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.DaysHigh + '</span>');
            $('#TECO-container .low').html('Low: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.DaysLow + '</span>');
            $('#TECO-container .close').html('Closing: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.PreviousClose + '</span>');
            $('#TECO-container .volume').html('Volume: <span style="font-weight: bold; color:#FFBB00">' + addCommas(json.query.results.quote.Volume) + '</span>');
        });
    });
};

这是JSFiddle:http://jsfiddle.net/Darthfuzzy/cPFKE/4/

根据JSFiddle,HTML / JS完全有效。所有迹象表明它也应该运行。结果应该只显示当前的市场数据,我之前看到过类似的功能。我只是想不出JS没有运行的地方。

脚本应该相当直接:股票代码是'TECO'(定义为tecoGetQuote)。然后,该函数从YQL JSON中提取财务数据,然后打印数据。但出于某种原因,无论我如何改变这些东西,它都不会显示出来。

有人可以通过指出问题的位置来帮助我吗?

1 个答案:

答案 0 :(得分:1)

如果有人想知道,编码没有问题,而是回调问题?没有被添加到JS导致访问控制允许原始问题。

XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin

将var dataformat行更改为:

var dataFormat ="&callback=&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";

解决了这个问题。