使用类选择器获取列的总数

时间:2013-10-27 22:09:19

标签: javascript jquery

我在表单中有以下表格行,我需要添加为总计。要做到这一点,我需要从金额中删除“$”和“,”。

    <tr>
    <td>football</td>
    <td class="price" style="text-align: right">$23,432.00</td>
    </tr>
    <tr>
    <td>baseball</td>
    <td class="prcice" style="text-align: right">$23,432.00</td>
    </tr>
     <div id="result"></div>

要添加的功能是

 function calculateSum() {
              var sumtotal = 0;
              $(".price").each(function () {

                  var value = $(this).text($(this).text().replace(/\$\$/g, '$',','));                
                 alert("value" + value);
                  if (!isNaN(value) && value.length != 0) {
                      sumtotal += parseFloat(value);
                  }
              });
              alert(sumtotal);
              $('#result').text(sumtotal);
          };

在我的document.ready()里面,我用这个来打电话。

 $(document).ready(function () { 
 $('.price').each(function () {
                  $(calculateSum);
              });
});

它给我0结果和价值我得到警报值[object Object] 请帮助,我如何正确地获得总数。谢谢

2 个答案:

答案 0 :(得分:1)

您没有正确使用replace方法,它只需要两个参数。第一个是要替换的正则表达式或字符串,第二个是新值。试试这个:

var value = "$23,432.00"; // here you pick the value from your table cell
var floatValue = parseFloat(value.replace(/[\$,]/g, ''))
alert(floatValue)

另外,看一下@charlietfl的答案,他指出了一些你应该在代码中纠正的其他问题。

答案 1 :(得分:0)

这里有各种各样的问题:

首先$(calculateSum);不是调用常规函数的方法。它应该只是calculateSum();

接下来calculateSum()您在$('.ethnTotal')内循环,但在$(document).ready中,您为$('.ethnTotal').each创建了另一个循环,并尝试在每次传递时调用calculateSum()那个循环

这会使你的钙化指数膨胀!