Я пытаюсь просто вставить слово из моего массива в DOM. Когда кнопка нажата, она возвращает неопределенное значение, и если я console.log randIndex, я получаю NaN
.
Хорошо, я пытался это выяснить, но мне кажется, что я что-то упустил. Когда я нажимаю на еду, она должна запускать функцию, чтобы показывать еду над кнопкой. Тем не менее, он возвращает неопределенное и помещает неопределенное в DOM. Больше всего меня смущает то, что если я запускаю функцию инициализации в window.load, она делает именно то, что и должна.
//load an item from menu on window load
window.addEventListener('load', init);
const mealBtn = document.getElementById('mealBtn');
const currentMeal = document.getElementById('current-meal');
const message = document.getElementById('message');
const menu = [
'Macaroni',
'Burgers',
'Chili',
'Breakfast',
'Chicken',
'Take Out?'
];
function init(){
showMeal(menu);
}
mealBtn.addEventListener('click', showMeal);
//show a meal from menu array
function showMeal(menu){
const randIndex = Math.floor(Math.random() * menu.length);
currentMeal.innerHTML = menu[randIndex];
message.innerHTML = 'How about this?';
message.style.color = '#003b6f'
};
Я ожидаю, что когда я нажимаю кнопку, она должна давать подсказку меню в DOM прямо над кнопкой. Он работает в функции init, когда окно загружается, а не при нажатии кнопки.