我有一个函数(如下所示),该函数总计“ .total”输入字段的onBlur页上的所有小时。此功能在FF中可以正常使用,但在Chrome和Safari中出现此错误:SyntaxError:意外的EOF ---我进行了一些研究,但对于可能是什么原因我迷失了。
谢谢你的帮助!
function totalUpHours() {
//add all values to an array
var hrsTotalsarr = new Array();
$('.total').each(function() {
var thisTotal = $(this).val();
//clean the value
if (thisTotal == "HRS") {
thisTotal = 0;
}
hrsTotalsarr.push(thisTotal);
});
//sum up the array
var hrsTotal = eval(hrsTotalsarr.join('+'));
$('#taskHRStotals').val(hrsTotal);
}
最佳答案
有时,当您从网站复制/粘贴代码时,无效字符可能会进入代码。
不幸的是,它们通常是不可见的,只有在使用键盘上的箭头键将光标移到光标上时才能注意到它们。当您到达无效的位置时,光标将暂停一次按键。
除此之外,考虑在代码中使用eval()
的替代方法。
function totalUpHours() {
var hrsTotal = $('.total').map(function() {
var thisTotal = $(this).val();
return thisTotal == "HRS" ? 0 : thisTotal;
})
.toArray()
.reduce(function(total, n) {
return total + n;
}, 0);
$('#taskHRStotals').val(hrsTotal);
}
这称为
map/reduce
,这是一个非常方便的模式。