我有一张罚款人员表:
<tr><td class='fines'>104.20</td></tr>
<tr><td class='fines'>26.40</td></tr>
<tr><td class='fines'>99.14</td></tr>
我想要得到细胞的总和:
var sumFines = "";
$.each($('.fines'),function(){
alert($(this).html());
sumFines += parseFloat($(this).html());
})
alert(sumFines);
每个循环中每个警报的结果是单元格中的数字。最终提醒的结果是“NaN
”,为什么?
答案 0 :(得分:2)
当你总结
"" + 120
结果返回一个字符串,你必须加数,所以改变
var sumFines = "";
到
var sumFines = 0;
答案 1 :(得分:1)
我需要将sumFines的初始值设置为0。
答案 2 :(得分:1)
var sumFines = 0;
$.each($('.fines'),function(){
alert($(this).html());
sumFines += parseFloat($(this).html());
})
alert(sumFines);
var sumFines = "";
使得sumFines成为一个字符串,这就是你获得NaN的原因,因为你在使用字符串和浮点数进行算术运算,而这些操作无法一起转换。
答案 3 :(得分:1)
如果您想保留.each方法,只需将初始值更改为0。
if searchBar.text != "" {
query.whereKey("search_text", containsString: searchBar.text.lowercaseString)
}
该行:
var subtotal = 0;
$('.fines').each(function() {
subtotal += !isNaN(+$(this).html()) && +$(this).html();
});
alert(subtotal);
声称您正在有效地添加一个数字,否则没有。
答案 4 :(得分:1)
Nan将整个表达减少为NaN 尝试:
!isNaN(+$(this).html()) && +$(this).html();