Javascript需要从数组中的函数中提取值

时间:2013-04-20 01:41:54

标签: javascript mootools

这是我的代码:

    <script>
window.addEvent('domready', function(){

    new Request.Stocks({
        stocks: ['SXCL'],
        onComplete: function(yahoo){
            var result = '';
            Array.each(Array.from(yahoo.query.results.quote), function(quote){
result += '<div class="company-ticks"></div>
<span class="company">Steel Excel ({Name})</span>
<span class="sub-info"> - OTC Markets<span> </div>  <div><span class="value">
{LastTradePriceOnly}</span><span class="changeup">
<img src="change-up.gif" class="change-img" />{Change} 
({ChangeinPercent})</span></div></div>'.substitute(quote);
            }, this);

            $('stocks').set('html', result);
        },
        onRequest: function(script){
            $('stocks').set('text', 'Loading...');
        }
    }).send();

    // Request.Stocks.element.js


});

</script>

你看到我在哪里有变量{Change]。我需要确定这个变量是正值还是负值。如果它是正数,那么它应该将类显示为“changeup”,将图像显示为change-up.gif。如果值为负,则显示的类应为“已更改”,图像将为change-down.gif

图像是向上的绿色箭头和向下的红色箭头。这些类使颜色成为红色和绿色之间的颜色。

因为这是在使用函数调用的数组中,所以我不知道如何解决这个问题。我想我必须把我的“结果”分成3个部分。前面的部分,设置类和图像的部分,然后是结果的其余部分。

任何帮助将不胜感激。

这使用带有mooTools的Javascript。它正在拉动雅虎股票报价。

1 个答案:

答案 0 :(得分:2)

我假设Change变量是quote对象的属性。否则,这在下面的代码中是一个简单的修复。

Array.each(Array.from(yahoo.query.results.quote), function (quote) {
    quote.changeImage = (quote.Change > 0) ? 'change-up.gif' : 'change-down.gif';

    result += '<div class="company-ticks"></div>
<span class="company">Steel Excel ({Name})</span>
<span class="sub-info"> - OTC Markets<span> </div>  <div><span class="value">
{LastTradePriceOnly}</span><span class="changeup">
<img src="{changeImage}" class="change-img" />{Change} 
({ChangeinPercent})</span></div></div>'.substitute(quote);
}, this);

请注意,在您正在做的HTML中生成HTML有点冒险且难以维护。