在JSON脚本中截断值

时间:2014-01-13 00:23:04

标签: javascript jquery html json

我正在创建一个库存小部件,使用JSON从Yahoo API / YQL控制台获取数据。我正在使用密钥ChangePercentRealtime中的值,但值比我需要的长。如何将值截断到我需要的部分,即后者的百分比?我不知道如何做到这一点,谷歌搜索没有变得有用。

以下是我到目前为止的内容:http://jsfiddle.net/thetuneupguy/r2Bca/

$(function () {
    $.getJSON('http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20yahoo.finance.quotes%20WHERE%20symbol%20in(%22GCF14.CMX%22%2C%22SIF14.CMX%22%2C%22PAH14.NYM%22%2C%22PLF14.NYM%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=', function (data) {
    console.log("data: ", data);
    console.log(data.query.results.quote);
    $.each(data.query.results.quote, function (key, obj) {
        var changeClass = '';
        var changeInPercentClass = '';
        var $tr = $('<tr/>', {
            'class': 'my-new-list'
        }).appendTo('#blk-1 table');
        $tr.append($('<td/>').text(obj.Name || "--"));
        $tr.append($('<td/>').text(obj.AskRealtime || "--"));
        $tr.append($('<td/>').text(obj.BidRealtime || "--"));

        (obj.Change.substr(0,1) == '+') ? changeClass = 'green' : changeClass = 'red';

        (obj.Change.substr(0,1) == '+') ? changeInPercentClass = 'green' : changeInPercentClass = 'red';

        $tr.append($('<td class="'+changeClass+'">').text(obj.ChangeRealtime|| "--"));
        $tr.append($('<td class="'+changeInPercentClass+'">').text(obj.ChangePercentRealtime || "--"));
        });

    });
});

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式查找所需的数据:

var re = /([+|-]\d\.\d\d\%)/gi;
var rt = re.exec(obj.ChangePercentRealtime);
$tr.append($('<td class="'+changeInPercentClass+'">').text( rt[0] || "--"));

我已更新jsFiddle并且没有错误捕获,因此您需要自己实现。