Tispartaaaa
@Tispartaaaa
Начинающий фронтендер :)

Почему цикл внутри функции даже не запускается?

Привет! Потихоньку изучаю JS. Не могу понять, почему этот код даже не запускается.
Это будущий акордеон. Не отрабатывает код который перед открытием одного айтема бежит по всем айтемам акордеона и все закрывает.

function acordeonOpen() {
  //Этот цикл даже не зпускается, почему?
  for (let i = 0; i < acordeonItems[i].length; i++) {
    acordeonItems[i]
      .querySelector('.acordeon__item-body')
      .style
      .height = '0px';
  }
  //хотя в то же время этот код запускается
  this
    .parentNode
    .querySelector('.acordeon__item-body')
    .style
    .height = this.parentNode.querySelector('.acordeon__item-body').getAttribute('data-acordeon-height');
}

Вот кодпен.
Спасибо!
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@Allan11
Фронтенд
i < acordeonItems.length

acordeonItems[i] это li
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Нужно смотреть, что у вас в acordeonItems. Как вы его получаете? Может это не массив совсем.
Смотрите пример, где acordeonItems это список элементов. jsfiddle.net/eocjkx3v все работает. (ну, если еще изменить acordeonItems[i] на acordeonItems)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект
30 апр. 2024, в 23:39
3000 руб./за проект