JQuery每个函数都可以乘以项目的数量

时间:2018-04-11 20:33:26

标签: jquery each

我试图使用jquery计算每个函数的项目总量,但它不起作用。请有人帮我解决问题。

$('.qty_value').on('change', function(){
    var new_qty = $(this).val();
    $('.item1').attr('data-order-qty', new_qty);
    var subamount, sqty, samt;
    $('.cart_items').each(function(){
      sqty = $(this).attr('data-order-qty');
      samt = $(this).attr('data-order-price');
      subamount += samt * sqty;
    //alert(subamount);				 
    });
    alert(subamount);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cart_items item1" data-order-qty="2" data-order-price="100">Item 1</div>
    <div class="cart_items item2" data-order-qty="1" data-order-price="10">Item 2</div>
    <div class="cart_items item3" data-order-qty="4" data-order-price="50">Item 3</div>

以上查询提醒NAN,但如果我删除了加号,则会返回第一项的金额。

3 个答案:

答案 0 :(得分:1)

使用0值初始化subamount

var subamount = 0, sqty, samt;

答案 1 :(得分:1)

属性值存储为字符串。将sum变量初始化为数字(0)会将值转换为数字。

更确定的是,在计算数学方程式时使用Number()parseInt()

&#13;
&#13;
$('#calcSum').on('click', function(){

    var new_qty = $(this).val();
    var subamount = 0;
    
    $('.item1').attr('data-order-qty', new_qty);
    
    $('.cart_items').each(function(){
      var current = $(this);
      subamount += Number(current.data('order-qty')) * Number(current.data('order-price'));
    });
    
    alert(subamount);
    
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="cart_items item_1" data-order-qty="2" data-order-price="100">Item 2</div>
<div class="cart_items item_2" data-order-qty="1" data-order-price="10">Item 2</div>
<div class="cart_items item_3" data-order-qty="4" data-order-price="50">Item 3</div>

<button type="button" id="calcSum"> add </button>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

初始化您要尝试的变量+ =到

var subamount1;
var subamount2 = 0;

subamount1 += '1' * '2';
subamount2 += '1' * '2';

console.log(subamount1, subamount2);