通常我的代码工作正常。但是,我得到了Syntax错误。这里的语法有什么错误?
$(document).ready(function() {
$('.myClass').change(function() {
var ids = ['first', 'second'];
var totalCount = ids.reduce((prev, id) => parseInt($(`#${id}-passenger`).val()) + prev, 0);
var mc = $('input[name="myClass"]:checked + label').text();
$('#myTotal').val(totalCount + ' - '+mc);
});
});
答案 0 :(得分:4)
也许你有一个Javascript版本问题,你应该尝试没有模板?
var totalCount = ids.reduce(function (prev, id) {
return parseInt($('#' + id + '-passenger').val()) + prev
}, 0);
希望它有所帮助。
答案 1 :(得分:1)
您的代码完全有效且工作正常。因此,我猜想这个问题很简单,你所使用的IDE中的JS linter已经过时,并且不支持ES6。我建议使用更新的linter,假设IDE允许你更改它,甚至完全更好的IDE。
如果您想避免此问题,则需要删除模板文字和箭头功能,如下所示:
$('.myClass').change(function() {
var ids = ['first', 'second'];
var totalCount = ids.reduce(function(prev, id) {
return parseInt($('#' + id + '-passenger').val()) + prev, 10);
}, 0);
var mc = $('input[name="myClass"]:checked + label').text();
$('#myTotal').val(totalCount + ' - ' + mc);
});