jQuery创建输入选项数组并将它们添加到一起

时间:2014-04-09 14:23:57

标签: jquery

我有一些选择输入,我需要创建一个当前所选val的数组。然后我需要将这些值加在一起。

我的HTML:

<select class="selectName" name="Select options" id="options1">
    <option value="5.0000">10x4</option>
    <option value="20.0000">10x8</option>
</select>

<select class="selectName" name="Select options" id="options2">
    <option value="5.0000">10x4</option>
    <option value="20.0000">10x8</option>
</select>

到目前为止,我可以通过以下方式获取当前option:selected值:

optionsTotal = $.map($(".selectName").find('option:selected'), function (el, i) {
   return $(el).val();
});

如何将这些值一起添加以获得总数?我只想要选择的选项总数。

这是一个小提琴: http://jsfiddle.net/vdecree/e9zxY/34/

5 个答案:

答案 0 :(得分:0)

我认为你需要这个:

var optionsTotal = 0;
$(".selectName > option:selected").each(function(){
    optionsTotal += Number($(this).val());
});

顺便说一句,你不能有重复的身份证。

答案 1 :(得分:0)

function getOptionsPrice() {

var optionsTotal = null;

function init() {
    $(".selectName").on('change', function() {

        optionsTotal = new Number(0);
        $.map($(".selectName").find('option:selected'), function (el, i) {
            var v = new Number( $(el).val());
            optionsTotal += v;
        });

        $(".result").text(optionsTotal);

    }).change();
}

  init();
  return optionsTotal;
}

getOptionsPrice();

答案 2 :(得分:0)

在$ .map()中使用parseFloat()并对optionsTotal使用clouser     function getOptionsPrice(){     var optionsTotal = 0;

function init() {
    $(".selectName").on('change', function() {
        optionsTotal = 0;
        $.map($(".selectName").find('option:selected'), function (el, i) {
            optionsTotal += parseFloat($(el).val());
        });

        $(".result").text(optionsTotal);

    }).change();
}

init();
return optionsTotal;
}

getOptionsPrice();

这是DEMO

答案 3 :(得分:0)

定义一个变量来保存总数,并使用$ map()遍历下拉列表,并在总变量上添加选定的选项,如下所示:

var sum=0;
 $.map( $('.selectName').find('option:selected'),
                          function(el){
                        sum += parseFloat($(el).val());
     });

     console.log(sum);

答案 4 :(得分:0)

function getOptionsPrice(){

function init() {
    $(".selectName").on('change', function() {
        var optionsTotal = 0.0;
        $.map($(".selectName").find('option:selected'), function (el, i) {

            optionsTotal += Number($(el).val());
            return optionsTotal;
        });
        $(".result").text(optionsTotal);

    }).change();
}

init();
return optionsTotal;

}

getOptionsPrice();

Working JSFiddle ...看看这个......