0

我目前有一个 javascript 股票代码,它可以提取实时股票数据。我真的想要公司名称以及股票 acryonm,但我正在努力让它发挥作用。

我这样做的一种方法是在文本中强制使用股票名称。它似乎运行良好,但是代码不断重复运行结果。虽然我是 javascript 新手,但我相信这与 i++ 和 3 段代码有关。

我创建了一个 jsfiddle 来尝试更好地理解这一点,并希望能让事情变得更清楚。

任何有关如何删除重复的帮助将不胜感激。

https://jsfiddle.net/7o3dgwgq/

var gstock = ["EPA:PIG","LON:AHT","NYSE:URI"];
$(document).ready(function () {
       for (var i = 0; i < gstock.length; i++) {
        $.getJSON("https://finance.google.com/finance/info?client=ig&q="+gstock[0]+"&callback=?", function (response) {
            var stockInfo1 = response[0];
            var stockString1 = '<div class="stockWrapper">HAULOTTE:';
            var stockName1 = stockInfo1.t;             
            stockString1 += '<span class="stockSymbol "> '  +  stockInfo1.t + ' </span>';
            stockString1 += '<span class="stockPrice "> '  +  stockInfo1.l  + '</span>';
            stockString1 += '<span class="stockChange "> '  +  stockInfo1.c + '</span>';
            stockString1 += '<span> at</span> <span class="stockTime">'  + stockInfo1.ltt + '</span>';
            stockString1 += '</div>';
            $('.haul').prepend(stockString1);

        });
    }
});

亲切的问候,山姆

4

2 回答 2

0

你可以试试这个吗?

该方法:

  1. 创建 3 个不同的<DIV>元素并使用data tags指定要获取的股票报价和要显示的标题。例如:<div class="stockinfo" data-symbol="EPA:PIG" data-title="HAULOTTE"></div>
  2. 所有元素共享同一个类stockinfo
  3. 然后我们在 stockinfo 类上使用选择器并循环遍历所有元素。
  4. 对于每个元素,从外部资源获取 JSON 并附加结果。

var gstock = ["EPA:PIG","LON:AHT","NYSE:URI"];
$(document).ready(function () {
    $(".stockinfo").each(function(indx,itm){
        var divContainer =  $(itm);
        $.getJSON("https://finance.google.com/finance/info?client=ig&q="+divContainer.data('symbol')+"&callback=?", function (response) {
            var stockInfo1 = response[0];
            var stockString1 = '<div class="stockWrapper">' + divContainer.data('title') + ':';
            var stockName1 = stockInfo1.t;             
            stockString1 += '<span class="stockSymbol "> '  +  stockInfo1.t + ' </span>';
            stockString1 += '<span class="stockPrice "> '  +  stockInfo1.l  + '</span>';
            stockString1 += '<span class="stockChange "> '  +  stockInfo1.c + '</span>';
            stockString1 += '<span> at</span> <span class="stockTime">'  + stockInfo1.ltt + '</span>';
            stockString1 += '</div>';
            divContainer.append(stockString1);

        });
    
    });
});
.stockWrapper {
    display: block;
    padding-top: 5px;
    font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; 
   font-weight: 300;
   border-bottom: 1px solid #E5DDD2;
}


.stockSymbol {
    font-weight: 600;
}

.stockPrice {
    font-weight: 600;
    color: red;
}

.stockChange {
    font-weight: 600;
    color: green;
}

.stockTime {
    font-weight: 600;
    color: grey;  
font-size: smaller; 
}

h2 {
    font-size: 1.5em;
}

p {
    margin-bottom: 0.5em;
}
.symbol { 
    float: left;
    margin-right: 3px;
}
.symbol .name { display: block }
    
.symbol.up { background: #70DB70 }
.symbol.up .change { color: green }
    
.symbol.down { background: #f7cdc2 }
.symbol.down .change { color: red }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="stockinfo" data-symbol="EPA:PIG" data-title="HAULOTTE"></div>
<div class="stockinfo" data-symbol="LON:AHT" data-title="ASHTEAD"></div>
<div class="stockinfo" data-symbol="NYSE:URI" data-title="UNITED RENTALS"></div>

于 2015-05-19T22:40:53.957 回答
0

gstock 不是字符串数组,而是对象数组,包含 acryonm 和 companyName。

.

试试这个链接

于 2015-05-19T23:30:07.747 回答