2

基本的に私がやろうとしているのは、特定の会社の株価を取得することです。私のコードでは、特定の会社のシンボル(例:FB)をテキストボックス(symb)に指定しています。ボタン(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

4 に答える 4

2

JS コードにいくつかの間違いがあります。

  1. ボタンのセレクターが正しくありません: $('getupdate')=> $('#getupdate');
  2. url値内の引用符が間違っています。
  3. Yahoo API へのクエリ文字列が正しくありません。
  4. コメント記号が間違ってい\\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('<li id="' + key + '">' + val + '</li>');

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

そして、このコードを<button>HTML のタグの後に追加してください。これにより、新しいクエリの前に結果を簡単にクリアできます。

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

以下に例を示します: http://jsfiddle.net/6EFqk/1/

出力形式が正しいかどうかはわかりません。必要に応じて再フォーマットしてください。

于 2013-04-18T14:51:57.713 に答える
1

まず、ボタンを正しく選択していません。

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

第二に、あなたのスラッシュはコメントのために後方にあり、常に後方ではなく前方です。

//For Example:FB

最後に、サービスから返されたこの理由により、結果が得られません。

現在のテーブル「yahoo.finance.quotes」はブロックされています。割り当てられた時間または指示のクォータを超えました

http://jsfiddle.net/RVFW3/

于 2013-04-18T14:37:35.210 に答える
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');   
    });
})
于 2014-03-04T13:54:52.217 に答える