我在表单中有以下表格行,我需要添加为总计。要做到这一点,我需要从金额中删除“$”和“,”。
<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] 请帮助,我如何正确地获得总数。谢谢
答案 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()
那个循环
这会使你的钙化指数膨胀!