我有一个ID为“#stock-hotdogs”的表格,最后一列始终是类“.subtotal”。小计总是使用这种格式:$ 99.00。所以我需要知道的是如何获得所有这些td的数字,将它们求和并将它们存储在一个变量中。应该走什么路?如何使用jQuery获取,解析和总结表的所有tds'?
回答
你可以这样做:
var cents_total = 0;
$('#stock-hotdogs .subtotal').each(function() {
var value = $.trim($(this).text());
var parts = value.substr(1).split('.');
cents_total += +parts[0] * 100 + (+parts[1] || 0);
});
这里我不使用parseFloat
,因为不应该使用浮点值进行财务计算(舍入误差)。应该是微不足道的百分之值转换成美元:)
var inputs = $('td.subtotal', '#stock-hotdogs').find('input');
var total = 0;
$(inputs).each(function() {
total += parseFloat($(this).val().replace(/[^\d\.]+/g, ''));
});
Here是现场工作示例或
未使用的输入元素的第二个版本......
$('#totalbtn').click(function() {
var total = 0;
$('td.subtotal', '#stock-hotdogs').each(function() {
total += parseFloat($(this).text().replace(/[^\d\.]+/g, ''));
});
});
HERE是这样的一个例子...
-1:'VAL()'只能在表单字段工作,'parseInt'将返回'NaN'开始用'$'文本。即使它起作用,你也会放弃这些美分。 *编辑:*我明白了,你认为会有输入字段...... OP并没有说这个。 –
由于您的代码符合您的假设,因此我撤回-1。 –
@Felix King,我明白你在说什么,我添加了一个正则表达式来解决这个问题。 – Gabe
var subTotals = $('#stock-hotdogs td.subtotal');
var sum = 0;
subTotals.each(function() {
sum += parseFloat($(this).text().substr(1));
});
alert(sum);
td.subtotal实际上也是用jQuery生成的,具体取决于你想要的每种“热狗”种类。我怎样才能使用它,所以每次我改变class .qty输入中的内容时,总和已更新并显示在#show-total中? –
我实际上是这样使用它http://pastie.org/2352865,但结果是“NaN”。当我调试它时,它似乎获得了第一个值,但随后它变成了Nan –
用途:
var total=0;
$('#stock-hotdogs .subtotal').text(function(i,v){
total+=parseFloat(v.substr(1));
});
alert('total: $'+total.toFixed(2));
看看在JQuery Calculation插件:它可以让你指定哪些领域总结使用jQuery选择器。使用它,你会做这样的事情:
$("#stock-hotdogs").find("td.subtotal").sum();
- 1. 使用jquery获取tds的值
- 2. 如何在Ruby中解析XML标记时获取所有内容的总和?
- 3. 使用jQuery获取所有输入值的总和
- 4. 如何使用jQuery获取可见的tds
- 5. 如何使用Scala获取json中所有元素的总和?
- 6. 如何使用jQuery获取所有ID?
- 7. 如何使用PHP获取SQL表中所有整数的总和?
- 8. 如何使用jQuery解析Json结果
- 9. 解析获取解析用户中的所有列
- 10. 如何使用$(this)获取jquery列表中的所有项目?
- 11. 如何使用jquery获取div内的所有表ID¶
- 12. 如何总结的所有列和所有空获得与使用了SQL显示为一个(NA)取代
- 13. 解析Scheme中的列表并获得所有数字的总和
- 14. 如何使用jquery解析解析反斜杠json结构?
- 15. 如何总结所有表中字段
- 16. 获取每行所有行的总和
- 17. 获取mysql中所有值的总和
- 18. 获取所有行的总和
- 19. 如何在jQuery中获得具有某个类的所有表行的总和?
- 20. 从PHP获取结果作为JSON并使用jQuery解析它
- 21. 解析.doc&.docx以获取使用golang的所有文本?
- 22. 使用html dom解析器获取区域的所有标题
- 23. 解析HTML并获取所有节点
- 24. 解析所有结果simple_html_dom
- 25. 使用解析获取所有用户数据
- 26. 如何使用jquery和ajax读取,解析和显示xml
- 27. 从TDS LDAP获取所有用户,包括图像
- 28. 如何获取配置单元中的所有列的总和
- 29. 如何将CSS添加到jQuery中特定tr的所有tds?
- 30. 使用backbone.js获取集合(所有模型)的总和
+1这一个实际上会工作,因为它处理前导'$',但为什么'.split()'而不是使用'parseFloat()'? – user113716
@patrickdw:由于浮点运算中的舍入误差。至少这是我在这里学到的:不要使用浮点值来赚钱;) –
哦,有问题。你以美分结果。好主意。 – user113716