Javascript语法错误:意外的EOF-仅限webkit浏览器

Javascript语法错误:意外的EOF-仅限webkit浏览器,javascript,jquery,Javascript,Jquery,我有一个函数(如下所示),它汇总了“.total”输入字段页面上的所有小时数。这个函数在FF中工作得很好,但在Chrome和Safari中,我得到了一个错误:SyntaxError:Unexpected EOF--我做了一些研究,但我不知道是什么导致了这个错误 谢谢你的帮助 function totalUpHours() { //add all values to an array var hrsTotalsarr = new Array(); $('.total').e

我有一个函数(如下所示),它汇总了“.total”输入字段页面上的所有小时数。这个函数在FF中工作得很好,但在Chrome和Safari中,我得到了一个错误:SyntaxError:Unexpected 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);
}

它似乎起作用了。在铬上测试

请参考

HTML:
它似乎起作用了。在铬上测试

请参考

HTML:
有时,当您从网站复制/粘贴代码时,无效字符会以其方式进入代码

不幸的是,它们通常是看不见的,只有用键盘上的箭头键将光标移过才能被注意到。当您到达无效的一个时,光标将暂停一次按键


除此之外,请考虑在代码中使用<代码> Value>(代码)>

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
,是一种非常方便的模式。

当您从网站复制/粘贴代码时,有时无效字符会以其方式进入代码

不幸的是,它们通常是看不见的,只有用键盘上的箭头键将光标移过才能被注意到。当您到达无效的一个时,光标将暂停一次按键


除此之外,请考虑在代码中使用<代码> Value>(代码)>

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
,是一个非常方便的模式。

为什么要使用eval?错误的做法。您是否从JSFIDLE这样的站点复制/粘贴了代码?我复制了这行代码:eval(hrsTotalsarr.join(+);但我已经删除了所有内容,并用手写输入了。你为什么要使用eval?错误的做法。您是否从JSFIDLE这样的站点复制/粘贴了代码?我复制了这行代码:eval(hrsTotalsarr.join(+);但后来我删除了所有内容,并用手打字。
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);
}