尝试从不同的javascript数组中添加两个值

时间:2013-07-25 23:09:42

标签: javascript math

我从这些脚本中派生出两个不同的值。

脚本#1

//JS for Potential Gen Ed TOC
$(function($) {
    $('#CourseMenu select').change(function() {
        var sum = 0;
        $('#CourseMenu select').each(function(idx, elm) {
            sum += parseFloat(elm.value, 10);
        });

     $('#total_potential').html(Math.min(sum,72).toFixed(2));
    });
});

脚本#2 ......

//JS for Potential Gen Ed TOC from Electives only
$(function($) {
    $('#CourseMenu_Electives select').change(function() {
        var sum = 0;
        $('#CourseMenu_Electives select').each(function(idx, elm) {
            sum += parseFloat(elm.value, 10);
        });

     $('#total_potential').html(Math.min(sum,33).toFixed(2));
    });
});

但是,我想从这两个数据中提取数据并将结果显示在以下HTML中...

   <p><fieldset id="PotentialTOC">
      <legend style="font-weight: bold; font-size: 140%;">Potential TOC Evaluation Results</legend>

      <div id="Results" style="text-align:left; font-family: 'Century Gothic', Gadget, sans-serif; font-size:14px;"><br />
        <div>
          <h2><span id="span"></span>
        Potential Gen Ed TOC:&nbsp;&nbsp;<span id="total_potential"></span>
        <br />
        Potential Money Saved: $<span id="total_money"></span>
        <br />
        Potential Class Time Saved:&nbsp;&nbsp;<span id="total_time"></span> weeks
</fieldset></p>

这是一个jsfiddle来展示我到目前为止所做的事情......我不能转移超过33个选修学分,总共不超过72个学分。我已经很好地编写了脚本,但是再次需要将它们组合起来吐出一个值。

1 个答案:

答案 0 :(得分:0)

首先想到的是将每个函数的结果存储在隐藏的div中(甚至显示,因此用户可以看到每个选项的权重)。然后,在为新选择计算新的信用总额后,只需添加有助于它的两列,即可更新总值。

这将是一个小改动,只需更改当前值的插入位置,并为每个更改回调添加一行或两行,这些回调将拉入这两个值,解析它们,添加它们,然后更新总div。

我想完全这样做,只是使用div中的前一个值,但我遇到的问题是你不确定之前的贡献是什么所以它使得在添加之前很难“归零”div因为选择不是累积的,所以在新选择中。一个选择框应该只对最终值做出一个贡献。

编辑:

所以我摆弄小提琴并采用状态对象方法:http://jsfiddle.net/MCg2d/1

COURSE['Non-electives'] = Math.min(sum, 72).toFixed(2);
var total = (parseFloat(COURSE['Non-electives'], 10) || 0) + (parseFloat(COURSE['Electives'], 10) || 0)
$('#total_potential').html(total);
});

这是非常粗糙的,但它可能比我上面的rambling更有意义。