zorro76
@zorro76

Как тут использовать document.getElementsByClassName?

jsfiddle

Есть несколько блоков текста в разных секциях, при уменьшении экрана браузера до 768px, часть текста скрывается и появляется кнопка Показать.
вопрос в следующем, если один блок надо скрывать то все ок, но если несколько блоков которые идут не друг за другом нужно скрыть, то этот метод не действует. id не могут повторяться. Я решил присвоить блокам класс и с помощью document.getElementsByClassName искать необходимые элементы но тогда скрипт не работает.
Посоветуйте как обыграть эту ситуацию?
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
document.getElementsByClassName возвращает коллекцию NodeList а не отдельный элемент
если нужно что-то сделать со всеми элементами в этой коллекции, то ее нужно пройти циклом:
function look(t) {
  var pList = document.getElementsByClassName(t);
  var l = document.getElementsByClassName("a-" + t)[0];
  for(var i = 0; i < pList.length; i++) {
    var p = pList[i];
    if (p.style.display == "block") {
      l.innerHTML = "Показать все";
      p.style.display = "none";
    } else {
      l.innerHTML = "скрыть";
      p.style.display = "block";
    }
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nickola105
@nickola105
начинающий
может Document.querySelectorAll(), не?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы