JavaScript: не добавляется класс getElementsByClassName [дубликат]

232
09 марта 2019, 10:30

На данный вопрос уже ответили:

  • Почему идет ошибка like.addEventListener is not a function? 1 ответ

Фиксированный класс:

.fixed-container {
            background-color: #242a35;
            position: fixed;
            width: 100%;
        }

Блок к которому необходимо добавить фиксированный класс:

<div class="wrapper-container">
        </div>

Код JavaScript:

window.onscroll = function() {
    var wrapperContainer = document.getElementsByClassName('wrapper-container');
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
    if (scrollTop > 50) {
     wrapperContainer.classList.add('fixed-container');
    }
   }

Ошибка: Uncaught TypeError: Cannot read property 'add' of undefined

Подскажите, что не так сделал?

Answer 1

Потому что в var wrapperContainer = document.getElementsByClassName('wrapper-container') у Вас не один элемент, а коллекция. Если у Вас это один такой элемент, напишите:

var wrapperContainer = document.getElementsByClassName('wrapper-container')[0]
READ ALSO
Выполнение функции внутри функции

Выполнение функции внутри функции

После выполнения определенного кода, нужно сразу же сделать следующую (разбить таблицу на страницы)Но почему-то выдаёт ошибку

192
Поиск наибольшей общей подстроки

Поиск наибольшей общей подстроки

Требуется разработать на языке JavaScript код, печатающий на консоль самую длинную общую подстроку всех переданных строк

172
Добавление и удаление ячеек через JS

Добавление и удаление ячеек через JS

Необходимо сделать скрипт который при нажатии на кнопку создаёт ячейку таблицы в низ, и при нажатии на другую кнопку создаёт ячейки таблицы...

154
Отслеживание ввода и показ сообщения [закрыт]

Отслеживание ввода и показ сообщения [закрыт]

Есть форма на сайте, если пользователь не ввел в течение времени туда никакие данные, показать ему сообщениеКак это реализовать на JS?

147