javascript - 为下拉选项分配多个值

标签 javascript jquery html

我想将多个值分配给一个下拉选项,然后将其汇总到一个文本字段中。

例如,我可能有三个下拉项:开胃菜、主菜、配菜。我可能有两个结果字段:卡路里和成本。这意味着,如果有人从开胃菜下拉列表中选择“沙拉”,则“沙拉”需要具有与其相关的成本和卡路里值。所述值还需要对主菜和副菜下拉菜单中的卡路里和成本值进行求和。

根据网站上的另一个答案,我首先使用以下代码对多个下拉列表中的值进行求和:http://jsfiddle.net/sf1hwp2y/

HTML:

<select name='anch1'>
 <option value='0'>Appetizer</option>
 <option value='20'>Option 1</option>
 <option value='30'>Option 2</option>
 <option value='40'>Option 3</option>
</select>

<select name='anch2'>
 <option value='0'>Entree</option>
 <option value='20'>Option 1</option>
 <option value='30'>Option 2</option>
 <option value='40'>Option 3</option>
</select>

<select name='anch3'>
 <option value='0'>Side</option>
 <option value='20'>Option 1</option>
 <option value='30'>Option 2</option>
 <option value='40'>Option 3</option>
</select>

<div id='sum'>Calorie Total</div>

Javascript + JQuery:

$('select').change(function(){
    var sum = 0;
    $('select :selected').each(function() {
        sum += Number($(this).val());
    });
     $("#sum").html(sum);
});

我不确定如何将价格或其他属性分配给下拉选项。有什么想法吗?

最佳答案

您可能可以在

上使用 data- 属性

类似这样的事情:

<select name="anch1">
    <option value="0">Appetizer</option>
    <option value="20" data-cost="5">Option 1</option>
    <option value="30" data-cost="10">Option 2</option>
    <option value="40" data-cost="20">Option 3</option>
    <option value="50" data-cost="50">Option 4</option>
</select>

然后,用你的 JS:

$('select').on('change', function(){
    var sum = 0;
    var cost = 0;

    $('select :selected').each(function() {
        sum += Number($(this).val());
        cost += Number($(this).data('cost'));
    });
    $('#sum').html(sum);
    $('#cost').html(cost);
});

关于javascript - 为下拉选项分配多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56781299/

相关文章:

javascript - onchange 不工作

jquery - 访问从 jquery ajax 发送的 struts 操作中的值为 null

javascript - 小书签:单击来自主机域的随机指定链接

javascript - Vue CLI - 将构建输出合并到单个 html 文件

javascript - 在 Node.js 中输入 pincode 值时需要获取国家、州、城市和地区

javascript - Rails 中的 Jquery 异步表单提交

php - AJAX/MySQL、JavaScript - 数据库和倒计时

javascript - 禁用表同一列中的所有复选框,而无需选中一个jquery

javascript - removeAttr() 和 remove() 不起作用

javascript - 用java解码html脚本