我试图使用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
,但如果我删除了加号,则会返回第一项的金额。
答案 0 :(得分:1)
使用0值初始化subamount
:
var subamount = 0, sqty, samt;
答案 1 :(得分:1)
属性值存储为字符串。将sum变量初始化为数字(0)会将值转换为数字。
更确定的是,在计算数学方程式时使用Number()
或parseInt()
。
$('#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;
答案 2 :(得分:0)
初始化您要尝试的变量+ =到
var subamount1;
var subamount2 = 0;
subamount1 += '1' * '2';
subamount2 += '1' * '2';
console.log(subamount1, subamount2);