1

我有不同的选择,其中有不同的值。我怎样才能得到这些值的总量?

例如我有

<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/

4

5 回答 5

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

小提琴

于 2013-01-27T19:10:13.973 回答
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/

于 2013-01-27T19:12:56.573 回答
3

获取跨多个<select>s 的值的总和:

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

console.log(total);
于 2013-01-27T19:10:32.543 回答
2
$(".total").change(function() {
    var sum = $(".total").map(function() {
        return +this.value;
    }).get().reduce(function(a, b) {
        return a + b;
    }, 0);
    console.log(sum);
});

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

于 2013-01-27T19:11:03.410 回答
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());
    });
});
于 2013-01-27T19:12:09.427 回答