JS函数计算产品数量和选项附加税

时间:2015-03-07 10:48:07

标签: javascript jquery

我有这个复杂的JS函数必须计算产品单一价格*数量的总和,如果有可用的产品选项,如果可用的选项有额外的税,它也必须添加到总数。

function update_amounts() {
    var sum = 0.0;
    $('#basketorder > tbody  > .product').each(function () {
        var qty = $(this).find('.qty option:selected').val();

        var selectedoptaddtax = 0.0;
        $('.selectedoptionselect option:selected').each(function () {
            var selectedoptaddtax = $(this).attr('price');
        })

        var price = $(this).find('.price').val();
        var amount = ((qty * price) + selectedoptaddtax);
        sum += amount;
        $(this).find('.amount').text('' + amount);
    });
    $('.total').text(sum);
}

我准备了jsfiddle here

在示例中,我在购物篮中只有1个产品,但如果购物篮中有1个产品,则该功能必须正确计算。

$(document).ready(function () {
    update_amounts();
    $('.qty').change(function () {
        update_amounts();
    });
    $('.selectedoptionselect').change(function () {
        update_amounts();
    });
});

1 个答案:

答案 0 :(得分:1)

您需要添加所选的选项价格。

代码

$(document).ready(function () {
    $('.selectedoptionselect, .qty').change(function () {
        update_amounts();
    }).change();
});

function update_amounts() {
    var sum = 0.0;
    $('#basketorder > tbody  > .product').each(function () {
        var qty = $(this).find('.qty').val();

        var selectedoptaddtax = 0.0;

        //Use find here
        $(this).find('.selectedoptionselect option:selected').each(function () {
            selectedoptaddtax += +$(this).attr('price'); // You need to add price
        })

        var price = $(this).find('.price').val();

        var amount = (qty * price) + (qty * selectedoptaddtax); //Changes here

        sum += amount;
        $(this).find('.amount').text('' + amount);
    });
    $('.total').text(sum);
}

DEMO