Javascript 将两个不同数组中的结果值相加

Javascript 将两个不同数组中的结果值相加,javascript,math,Javascript,Math,请看一下我的样品 我有一个为转学选择的学分总数。当您选择学分数时,运行总数相加。它的设计是每节6学分。这部分很好用 我想做的是把两个不同的结果集加在一起 沟通+人文=总学分 …并将其显示在总学分:字段中。这就是我迷路的地方 我不知道如何将两个不同的字段添加到一起 这就是我用来得到最终结果的方法。。。72是这样的,计数将在最大72个转账积分处停止 JavaScript HTML 你有很多问题 首先,id必须是唯一的。不能有多个具有相同id的列表。请将学分更改为类而不是id 第二,没有选择的总学分。

请看一下我的样品

我有一个为转学选择的学分总数。当您选择学分数时,运行总数相加。它的设计是每节6学分。这部分很好用

我想做的是把两个不同的结果集加在一起

沟通+人文=总学分

…并将其显示在总学分:字段中。这就是我迷路的地方

我不知道如何将两个不同的字段添加到一起

这就是我用来得到最终结果的方法。。。72是这样的,计数将在最大72个转账积分处停止

JavaScript

HTML


你有很多问题

首先,id必须是唯一的。不能有多个具有相同id的列表。请将学分更改为类而不是id

第二,没有选择的总学分。这样改变事件就永远不会发生。只要选择了任何一个积分,您就需要计算并设置总积分。您可以在现有的更改功能中执行此操作。为此,获取每个选择的值并将其相加

增加了一把小提琴:


等等。

您不需要为每组选择使用不同的功能。相反,您可以使用

$(function($) {
    var sum = function($els, prop) {
        var s = 0;
        $els.each(function(idx, elm) {
            s += parseFloat(elm[prop], 10) || 0;
        });
        return s;
    };
    $('.select-wrapper select').change(function() {
        var $wrap = $(this).closest('.select-wrapper');
        $wrap.find('.sum').html(Math.min(sum($wrap.find('select'), 'value'),6).toFixed(2));
        $('.total-sum').html(Math.min(sum($('.sum'), 'innerHTML'),72).toFixed(2));
    });
});

请注意,为了使html正常工作,我对html进行了一些修改,并修复了重复ID和胡说八道之类的问题。

您在坚持什么?获取价值观?添加它们?更新总字段?我想你可以说。。。获取我可以单独显示的值,将它们添加到一起并显示它们。如果你打算否决投票,请体面地添加一条评论。到目前为止,我已经展示了我的作品,我被卡住了。我不是来这里写代码的……只是寻求一些帮助。我投了反对票;如下所述,这段代码有很多问题。在问这个问题之前,您最好先了解一下访问DOM的更多信息。例如,如果您不知道如何选择值,您可以通过google从span中选择文本,您可能会这样做。我对这个问题投了否决票,因为它似乎显示出很少的研究成果,我怀疑它将来对其他人是否有用。SO的美妙之处在于任何其他人都可以不同意并投票赞成。但是,我该如何改变它们呢?它们是标签。值得一提的是,标签必须与ID匹配,但ID必须是唯一的。无论你想想出什么样的计划,都由你决定。在我的小提琴中,我只是对它们进行了编号。更新是因为我注意到您限制了总数,而获取列表框值时不会考虑该限制。webfrogs-选择这一个,它更好:
Total Credits: &nbsp;&nbsp;<span id="total_Credits" style="color: red; font-weight:bold; font-size: 2em;"></span>  
calcTotals = function() {
    var grandTotal = 0;
    $('.total').each(function() {
        if ($(this).text()) grandTotal += parseFloat($(this).text(), 10);
    });
    $('#total_Credits').text(Math.min(grandTotal,72).toFixed(2));

};
$('#communication select').change(function () {
    var sum = 0;
    $('#communication select').each(function (idx, elm) {
        sum += parseFloat($(elm).val(), 10);
    });

    $('#total_communication').html(Math.min(sum, 6).toFixed(2));
    calcTotals();
});
$(function($) {
    var sum = function($els, prop) {
        var s = 0;
        $els.each(function(idx, elm) {
            s += parseFloat(elm[prop], 10) || 0;
        });
        return s;
    };
    $('.select-wrapper select').change(function() {
        var $wrap = $(this).closest('.select-wrapper');
        $wrap.find('.sum').html(Math.min(sum($wrap.find('select'), 'value'),6).toFixed(2));
        $('.total-sum').html(Math.min(sum($('.sum'), 'innerHTML'),72).toFixed(2));
    });
});