我们的想法是每次选中复选框时刷新总值。
我的HTML看起来像那样
<table class="table table-striped table-bordered table-hover">
<tbody>
...
<tr>
<td><input type="checkbox" name="services[]" value="5" class="services"></td>
<td>Sample</td>
<td id="srv_5">60</td>
</tr>
...
</tbody>
</table>
功能看起来像那样
function calcServicesTotal() {
var total=0;
$('.services').each(function () {
var id = parseInt($(this).val());
var price = parseInt($("#srv_" + id).text());
if (this.checked) {
total = total + price;
console.log("id - " + id + " price - " + price);
}
else {
if (total > 0)
total = total - price;
}
});
console.log("total - " + total);
}
问题是我可以看到console.log("id - " + id + " price - " + price);
正确的值,但每次都会停留0.我做错了什么?
答案 0 :(得分:1)
这没有任何意义
else {
if (total > 0)
total = total - price;
}
其他根本没有意义,所以如果未选中该复选框,则减去。因此,如果选中第一个复选框,则会使总数> 0和所有复选框都未选中,您开始减去它们的值,直到它为零。
那个别的检查不属于那里。