После прохода switch, console.log выдаёт undefined. Что не так?
const getPriceOfSelect = () => {
switch (valueOfSelect) {
case 10:
priceOfMovie = 10;
return priceOfMovie;
break;
case 12:
priceOfMovie = 12;
return priceOfMovie;
break;
case 8:
priceOfMovie = 8;
return priceOfMovie;
break;
case 9:
priceOfMovie = 9;
return priceOfMovie;
break;
default:
return alert( "Нет таких значений" );
}
}
const changeStyleOfPlace = (getElementFromArray, priceOfMovie) => {
if (getElementFromArray.currentTarget.className == "row__place") {
getElementFromArray.currentTarget.className = "row__selected";
document.querySelector(".text__total").innerHTML += priceOfMovie;
}
else {
getElementFromArray.currentTarget.className = "row__place";
}
}
document.querySelector(".select").addEventListener('change', function() {
let valueOfSelect = Number(this.value);
});
document.addEventListener('DOMContentLoaded', () => {
let valueOfSelect = Number(document.querySelector(".select").value);
});
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Никакого "прохода switch" в коде нет, так как getPriceOfSelect не вызывается.
Формальный параметр priceOfMovie функции changeStyleOfPlace не имеет отношения к внешней переменной priceOfMovie, если только эта переменная не используется в качестве второго параметра в вызове changeStyleOfPlace.
Локальная переменная valueOfSelect не видна снаружи тех функций, где она объявлена. Таким образом, значение valueOfSelect в switch (valueOfSelect) { не определено.
let valueOfSelect;
document.querySelector(".select").addEventListener('change', function() {
valueOfSelect = Number(this.value);
});
document.addEventListener('DOMContentLoaded', () => {
valueOfSelect = Number(document.querySelector(".select").value);
});