我有运算符减去的jquery脚本,但我得到了错误的值,这是我的代码
var fuid = $(this).attr("data-delete-id");
var hargaProduk = parseInt($("#harga_"+fuid).text());
var hargaTotal = parseInt($("#total-harga").text());
var newValue = hargaTotal - hargaProduk;
$("#total-harga").html(newValue);
这是我的HTML代码
// foreach in here
<tr id="table_1">
<td>Data 1</td>
<td>Rp <span id="harga_1"> 275,000</span></td>
<td><span class="delete-product" data-delete-id="1"><span>Delete</span></span></td>
</tr>
<tr id="table_2">
<td>Data 2</td>
<td>Rp <span id="harga_2"> 175,000</span></td>
<td><span class="delete-product" data-delete-id="2"><span>Delete</span></span></td>
</tr>
<tr id="table_3">
<td>Data 3</td>
<td>Rp <span id="harga_3"> 180,000</span></td>
<td><span class="delete-product" data-delete-id="3"><span>Delete</span></span></td>
</tr>
//end foreach in here
<tr style="background:#DEDEDE;">
<td><b>Total </b></td>
<td></td>
<td><b>Rp <span id="total-harga"><?= number_format(CartTotal())?></span></b></td>
<td></td>
</tr>
当我运行它时,它显示如下:
但是,当我点击 3号中的删除并运行JS脚本值更改为 Rp -179
我的代码有问题吗?我只想显示变量hargaTotal的值 - hargaProduk
三江源
答案 0 :(得分:4)
JavaScript的parseInt
和parseFloat
停在第一个无效字符处,并且它们不支持逗号,因此parseInt("180,000")
会返回180
。要解析您的数字,您需要删除逗号:
var hargaProduk = parseInt($("#harga_"+fuid).text().replace(/,/g, ""));
// ------------------------------------------------^^^^^^^^^^^^^^^^^^
...然后在显示时添加它们;如果你进行搜索,你会在SO such as this one找到用于格式化具有数千个分隔符的数字的解决方案。
答案 1 :(得分:0)
它为逗号(,)带来问题。使用此JavaScript代码
var fuid = $(this).attr("data-delete-id");
var hargaProduk = parseInt( $("#harga_"+fuid).text().replace(/,/g, ""));
var hargaTotal = parseInt( $("#total-harga").text().replace(/,/g, ""));
var newValue = hargaTotal - hargaProduk;
$("#total-harga").html(newValue);