Кидает ошибку Uncaught TypeError: Cannot read property 'classList' of undefined

loadMoreBtn[0].addEventListener('click', () => {
    loadMore(0, 12, 24, amazingWorkContent);
})


function loadMore(btnIndx, startPoint, endPoint, content) {
    loadMoreBtn[btnIndx].classList.remove('active');
    loadBtn[btnIndx].classList.add('active');
    setTimeout(() => {
        loadBtn[btnIndx].classList.remove('active');

        if (BtnSwitch === 0) {
            for (let i = startPoint; i < endPoint; i++) {
                content[i].classList.add('active');
            }
            loadMoreBtn[btnIndx].classList.add('active');

            BtnSwitch = 1;
        } else {
            for (let i = startPoint * 2; i < endPoint * 2; i++) {
                content[i].classList.add('active');
            }

            BtnSwitch = 0;
        }
    }, 1000)
}

Выдает ошибку к строке - content[i].classList.add('active'); не понимаю почему так происходит. При нажатии на кнопку loadMore должны подгрузиться картинки


Ответы (1 шт):

Автор решения: Вадим Александру

У вас идет запрос к элементу массива по несуществующему индексу. попробуйте поменять этот кусок кода

for (let i = startPoint; i < endPoint; i++) {
     content[i].classList.add('active');
}

на этот

for (let i = startPoint; i < endPoint; i++) {
    if(undefined !== content[i]) {
       content[i].classList.add('active');
    }
}
→ Ссылка