1
0

Не работает скрипт в JS курсе 3.2. Создаем табы , не скрывает div контента

window.addEventListener('DOMContentLoaded', function() {
    'use strict';

    let tab = document.querySelectorAll('.info-header-tab'),
        info = document.querySelector('.info-header'),
        tabContent = document.querySelector('.info-tabcontent');

    function hideTabContent(a) {
        for(let i = a; i < tabContent.length; i++) {
           tabContent[i].classList.remove('show'); 
           tabContent[i].classList.add('hide');
        }
    }

    hideTabContent(1);

    function showTabContent(b) {
        if (tabContent[b].classList.contains('hide')) {
            tabContent[b].classList.remove('hide');
            tabContent[b].classList.add('show');
        };
    };

    info.addEventListener('click', function(event){
        let target = event.target;

        if (target && target.classList.contains('info-header-tab')) {
            for( let i = 0; i < tab.length; i++) {
                if(target == tab[i]) {
                    hideTabContent(0);
                    showTabContent(i);
                    break;
                }
            }
        }

    });

});

скрипт не отпрабатываете ругает на строки в отладчике не может вызвать функцию в условии, а также ругается на classList

        if (tabContent[b].classList.contains('hide')) и на  showTabContent(i);

выдает следующие ошибки:

Uncaught TypeError: Cannot read property 'classList' of undefined
at showTabContent (tabs.js:18)
at HTMLDivElement.<anonymous> (tabs.js:31)

Подскажите в чем причина что я не так делаю?


Александр Паньков
4 years ago






В строке tabContent = document.querySelector('.info-tabcontent');  должен стоять querySelectorAll, чтобы получить все элементы

Арина Зайцева
4 years ago

Один ответ