JQuery运算符的值不正确

时间:2015-06-15 13:32:24

标签: javascript php jquery ajax

我有运算符减去的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>

当我运行它时,它显示如下: enter image description here

但是,当我点击 3号中的删除并运行JS脚本值更改为 Rp -179

我的代码有问题吗?我只想显示变量hargaTotal的值 - hargaProduk

三江源

2 个答案:

答案 0 :(得分:4)

JavaScript的parseIntparseFloat停在第一个无效字符处,并且它们不支持逗号,因此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);