多个选择金额

时间:2013-01-27 19:07:06

标签: javascript jquery

我有不同的选择,其中包含不同的值。如何获得这些值的总数?

例如我有

<select class="total">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>
<select class="total">
    <option>2</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>

如果我从第一个选择1和第二个2中选择,我希望得到3作为结果。

http://jsfiddle.net/vQ8Bm/

5 个答案:

答案 0 :(得分:4)

$(document).ready(function () {
    $('.total').on('change', function () {
        var sum = 0;
        $('.total').each(function () {
            sum += parseInt(this.value, 10);
        });
        alert(sum);
    });
});

FIDDLE

答案 1 :(得分:4)

以防万一,一个vanilla-js解决方案

var map = Array.prototype.map;

var res = map.call(document.getElementsByClassName('total'), function( select ) {
    return select.value;
}).reduce(function( a, b ) {
    return +a + +b;
});

alert(res);

演示: http://jsfiddle.net/vQ8Bm/6/

答案 2 :(得分:3)

获取多个<select>的值之和:

var total = 0;
$('select.total').each(function () {
    total += parseInt($(this).val(), 10);
});

console.log(total);

答案 3 :(得分:2)

$(".total").change(function() {
    var sum = $(".total").map(function() {
        return +this.value;
    }).get().reduce(function(a, b) {
        return a + b;
    }, 0);
    console.log(sum);
});

DEMO: http://jsfiddle.net/vQ8Bm/4/

答案 4 :(得分:2)

您应该查看所选元素并将每个元素转换为整数,然后添加它们。

var sum = 0;
$('.total :selected').each(function () {
    sum += parseInt($(this).text());
});

<强>更新

在选择更改事件

$('.total').change(function () {
    var sum = 0;
    $('.total :selected').each(function () {
        sum += parseInt($(this).text());
    });
});