首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多选金额

多选金额
EN

Stack Overflow用户
提问于 2013-01-28 03:07:06
回答 5查看 67关注 0票数 1

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

例如,我有

代码语言:javascript
复制
<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>

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

http://jsfiddle.net/vQ8Bm/

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-28 03:12:09

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

代码语言:javascript
复制
var sum = 0;
$('.total :selected').each(function () {
    sum += parseInt($(this).text());
});

  • Demo

更新

在select change事件内部

代码语言:javascript
复制
$('.total').change(function () {
    var sum = 0;
    $('.total :selected').each(function () {
        sum += parseInt($(this).text());
    });
});
票数 2
EN

Stack Overflow用户

发布于 2013-01-28 03:10:14

代码语言:javascript
复制
$(document).ready(function () {
    $('.total').on('change', function () {
        var sum = 0;
        $('.total').each(function () {
            sum += parseInt(this.value, 10);
        });
        alert(sum);
    });
});
票数 4
EN

Stack Overflow用户

发布于 2013-01-28 03:12:57

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

代码语言:javascript
复制
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/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14551060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档