如何分别计算每个部分的总值:Jquery

时间:2016-03-24 18:17:49

标签: javascript jquery ajax input

我有超过10个部分,每个部分包含三个输入,如下所示:

<div class="product_quantity">
    <div class="color-quantity">
        <input onkeydown="return myFunction(event);" name="custom_small" class="custom_small" type="text">
        <input onkeydown="return myFunction(event);" name="custom_medium" class="custom_medium" type="text">
        <input onkeydown="return myFunction(event);" name="custom_large" class="custom_large" type="text">
    </div>

    <div class="color-quantity">
        <input onkeydown="return myFunction(event);" name="white_small" class="custom_small" type="text">
        <input onkeydown="return myFunction(event);" name="white_medium" class="custom_medium" type="text">
        <input onkeydown="return myFunction(event);" name="white_large" class="custom_large" type="text">
    </div>
</div>

我正在计算每个部分的产品数量,但是根据每个输入中输入的金额给出了我的全部产品数量。但我想分开部分的产品数量

我正在使用jQuery这样做,请检查代码并根据需要推荐更改:

jQuery(".color-quantity input").each(function () {
    if (this.value) {
        quantity += (this.value) * 1;
        classname = jQuery(this).attr('class');
        arr.push(classname);
    }

    if (quantity == '') {
        quantity = 0;

    }
});

2 个答案:

答案 0 :(得分:1)

你可以将每个部分的总数作为一个数组,如下所示。

&#13;
&#13;
var arr = $('.color-quantity').map(function () {
    var total = 0;
    $('input', this).each(function () {
        total += this.value * 1;
    });

    //do some stuff 
    if (total < 50) {
        $('.btn-cart').removeAttr("onclick");
    }

    return total;
}).get();

console.log(arr)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="color-quantity">
    <input type="text" value="1">
    <input type="text" value="2">
    <input type="text" value="3">
</div>

<div class="color-quantity">
    <input type="text" value="4">
    <input type="text" value="5">
    <input type="text" value="6">
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以尝试嵌套循环。首先循环通过颜色数量div,然后通过输入。像这样:

jQuery(".color-quantity").each(function () {
    var quantity = 0;
    $(this).find('input').each(function() {
        if (this.value) {
            quantity += (this.value) * 1;
            classname = jQuery(this).attr('class');
            arr.push(classname);
        }

        if (quantity == '') {
            quantity = 0;
        }

    });
    // here is where you can get the total value for each div
});