通常我的代码运行良好。但是,我收到语法错误。这里的语法错误是什么?
$(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);
});
});
也许您有 Javascript 版本问题,您应该尝试不使用模板?
var totalCount = ids.reduce(function (prev, id) {
return parseInt($('#' + id + '-passenger').val()) + prev
}, 0);
希望有帮助。
您的代码完全有效并且工作正常。因此我猜测这个问题只是因为你使用的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);
});