尝试添加来自不同javascript数组的两个值

Trying to add two values from different javascript arrays

本文关键字:两个 数组 javascript 添加      更新时间:2023-09-26

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

脚本#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个。我已经很好地布置了脚本,但同样,需要将它们组合起来才能产生一个值。

首先想到的是将每个函数的结果存储在一个隐藏的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);
});

这很粗糙,但可能比我上面的胡言乱语更有意义。