Задать вопрос
godsplan
@godsplan

Как получить все элементы с определенным id и применить к ним какую либо функцию?

Я понимаю вопрос глупый, но я никак не могу получить то что хочу.
У меня есть несколько дивов с айди slide-item
let $slideItem = document.getElementById('slide-item');


Это получает только первый элемент с таким айдишником.
Я проболвал использовать querySelectorAll, но тогда у меня не срабатывает метод 'style' когда я обращаюсь к нему.

На сколько я помню нужно как то перебрать все элементы через forEach или что то такое, но я не могу понять как мне это сделать, чтобы я мог использовать это так как хочу.
Сейчас мой код выглядит вот так:
let sliderLength = document.getElementsByClassName('slider-content_item').length;
let $slideItem = document.getElementById('slide-item');
let slideWidth = $slideItem.offsetWidth
console.log(slideWidth)
let currentSlide = 1;








function nextSlide() {

  if (currentSlide >= sliderLength) {
    $slideItem.style.transform = 'translate(0px)';
    currentSlide = 1
  }
  else {


    $slideItem.style.transform = 'translate(' + (-slideWidth) * currentSlide + 'px' + ')';

    currentSlide++
    console.log(currentSlide)


  }

  console.log($slideItem)
}
  • Вопрос задан
  • 1634 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
id обязательно должны быть уникальными. Нельзя использовать один id для нескольких элементов.

Зато className может присутствовать у многих элементов. Назначьте всем слайдам класс slide-item

Upd. примерно так можно, коротко и просто:
Ответ написан
Jukk
@Jukk
document.querySelectorAll('.slider-content_item').forEach((elem) => {
  elem.style .......... 
  // Вот здесь пишешь что тебе нужно сделать, elem это текущий итерируемый элемент, forEach работает как обычный цикл.
});


querySelectorAll найдет все элементы с классом slider-content_item и сделает массив, потом форЫчем можно применять ко всем этим элементам стиль.

Можешь задавать любые вопросы - отвечу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы