jquery - 如何找到总折扣 - jQuery
问题描述
我正在尝试输出总的独家折扣。例如,如果有两种产品,每种产品的成本都是 1000 和 10% 的折扣。那么总独占将是 200。但我的代码显示只有 1 个产品的折扣
这是jQuery代码
$(document).on('keyup', '#invoice_item_price, #invoice_item_quantity, #invoice_item_discount', function() {
var sum = 0;
$('.invoice-table > tbody > tr').each(function() {
var price = $(this).find('#invoice_item_price').val();
var quantity = $(this).find('#invoice_item_quantity').val();
var discount = $(this).find('#invoice_item_discount').val();
var tax = $(this).find('#invoice_item_tax').val();
var total = (quantity * price);
if (discount) {
var dec = (discount / 100).toFixed(2);
var mult = total * dec;
$("#invoice_total_discount").text(mult);
total = total - mult;
}
$(this).find('#invoice_item_total_amount').val(total);
sum += total;
});
$('#invoice_subtotal').text(sum);
$('#invoice_total_amount').text(sum);
});
$("#invoice_total_discount").text(mult); 这将在 span 标签中输出折扣,但它仅显示 1 个产品的折扣。我正在尝试显示所有产品的总独家折扣
解决方案
就像评论中提到的那样:ID 必须是唯一的,因此您应该将它们更改为类。要获得总折扣,您只需在脚本中添加另一个变量(例如disc
),这样sum
就可以计算每一行的计算折扣。
由于tax
在此示例中未使用,因此我将其删除。而且因为invoice_subtotal
显示相同,所以invoice_total_amount
我将其替换invoice_total_discount
为总折扣。
$(document).on('keyup', '.invoice_item_price, .invoice_item_quantity, .invoice_item_discount', function() {
var sum = 0;
var disc = 0;
$('.invoice-table > tbody > tr').each(function() {
var price = $(this).find('.invoice_item_price').val();
var quantity = $(this).find('.invoice_item_quantity').val();
var discount = $(this).find('.invoice_item_discount').val();
var total = quantity * price;
if (discount) {
var dec = (discount / 100).toFixed(2);
var mult = total * dec;
disc += mult;
total = total - mult;
}
$(this).find('.invoice_item_total_amount').val(total);
sum += total;
});
$('#invoice_total_amount').text(sum);
$("#invoice_total_discount").text(disc);
});
input {
width: 70px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="invoice-table">
<thead>
<tr>
<th>Price</th>
<th>Quantity</th>
<th>Discount</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr>
<td><input class="invoice_item_price"></td>
<td><input class="invoice_item_quantity"></td>
<td><input class="invoice_item_discount"></td>
<td><input class="invoice_item_total_amount" readonly></td>
</tr>
<tr>
<td><input class="invoice_item_price"></td>
<td><input class="invoice_item_quantity"></td>
<td><input class="invoice_item_discount"></td>
<td><input class="invoice_item_total_amount" readonly></td>
</tr>
</tbody>
</table>
<div>Total amount: <span id="invoice_total_amount"></span></div>
<div>Total discount: <span id="invoice_total_discount"></span></div>
推荐阅读
- android - Android - 使用添加的打印机打印 PDF 文件
- scala - 如何获取使用 ScalaTest 实现的测试类中所有测试的列表?
- git - 添加具有先前提交前缀的提交
- python - 将一次性购买转化为每月累计金额
- flutter - 列内的 ListView 未正确展开
- google-sheets - 使用 Google 表格创建列表
- css - 数据溢出到下一条记录
- google-api - 使用 google api for javascript 时如何设置特定来源?
- azure-devops - 有没有办法在 Azure DevOps 中为 YAML 管道指定 PR 分支
- c# - OnActionExecuting ValidationAttribute