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番目の選択から選択すると、結果として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);
    });
});

FIDDLE

于 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

Get the sum of the values across multiple <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);
});

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

于 2013-01-27T19:11:03.410 に答える
2

選択した要素を調べて、それぞれを整数に変換してから追加する必要があります。

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

アップデート

select change イベント内

$('.total').change(function () {
    var sum = 0;
    $('.total :selected').each(function () {
        sum += parseInt($(this).text());
    });
});
于 2013-01-27T19:12:09.427 に答える