我有一些选择输入,我需要创建一个当前所选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();
});
如何将这些值一起添加以获得总数?我只想要选择的选项总数。
答案 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 ...看看这个......