![](/img/trans.png)
[英]Jquery calculate sub total from fields - qty and price by class and grand Total sum
[英]jQuery simple price * qty total on multiple items
我正在尋找加載item
多個實例的自動total
計算。 我試着找到每個item
的price
和qty
,但總數不計算。
$(document).ready(function() { $('.item').each(function() { var qty = $(this).find('.qty').val(); var price = $(this).find('.price').val(); var total = qty * price; $('.total').val(total); }); });
.item { border: 1px solid }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="item"> <div class="qty">50</div> <div class="price">10</div> <div class="total">0</div> </div> <div class="item"> <div class="qty">20</div> <div class="price">50</div> <div class="total">0</div> </div> <div class="item"> <div class="qty">19</div> <div class="price">40</div> <div class="total">0</div> </div>
您需要使用文本和數字函數來計算:
$(document).ready(function() {
$('.item').each(function() {
var qty = $(this).find('.qty').text();
var price = $(this).find('.price').text();
var total = Number(qty) * Number(price);
$(this).find('.total').text(total);
});
});
這是一個使用jQuery #text()並使用一元加運算符轉換為數值的工作示例
碼:
$('.item').each(function() { $this = $(this); $this.find('.total').text( +$this.find('.qty').text() * +$this.find('.price').text() ); });
.item { border: 1px solid }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="item"> <div class="qty">50</div> <div class="price">10</div> <div class="total">0</div> </div> <div class="item"> <div class="qty">20</div> <div class="price">50</div> <div class="total">0</div> </div> <div class="item"> <div class="qty">19</div> <div class="price">40</div> <div class="total">0</div> </div>
我認為發現可能會導致性能下降。
使用普通的類選擇器。
我發現這篇文章是一樣的
// Find may cause performace overhead. $('.item').each(function() { $this = $(this); $('.total',$this).text( +$('.qty',$this).text() * +$('.price',$this).text() ); });
.item { border: 1px solid #d4d4d4 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="item"> <div class="qty">50</div> <div class="price">10</div> <div class="total">0</div> </div> <div class="item"> <div class="qty">20</div> <div class="price">50</div> <div class="total">0</div> </div> <div class="item"> <div class="qty">19</div> <div class="price">40</div> <div class="total">0</div> </div>
你需要做的是將變量解析為它的類型,即數字或Int或Float
$(document).ready(function() {
$('.item').each(function() {
var qty = $(this).find('.qty').val();
var price = $(this).find('.price').val();
var total = parseFloat(qty) * parseFloat(price);
$('.total').val(total);
});
});
您也可以將parseFloat
替換為Number
。 此外,如果您不需要十進制值,請使用parseInt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.