JavaScript для управления отображением DIV-блоков

Используйте чистый JavaScript для переключения видимости DIV-элементов с отзывами. Клик по ссылке вызывает функцию changeBlock, скрывающую все блоки и показывающую нужный.

document.addEventListener('DOMContentLoaded', function(){
  let feedbacks = document.querySelectorAll('.feedback-item');
  document.querySelectorAll('.page-link').forEach(link => {
    link.addEventListener('click', function(e){
      e.preventDefault();
      let num = this.dataset.num;
      feedbacks.forEach(item => item.style.display = 'none');
      document.getElementById('feedback' + num).style.display = 'block';
    });
  });
});

Пробовал такой вариант ещё пару раз, и у меня получалось всё работать как надо. Иногда возникали небольшие заминки при переключении блоков, поэтому самим дописывал проверку на существование нужного элемента. Мне нравится, что код простой и понятный, даже если что неловко переписываешь data-num или id. Лично я до сих пор использую этот метод, так что если что то пойдет не так – проверяй имена и атрибуты, всё обычно встает на свои места после небольшой правки.

Использовал подобный подход в нескольких проектах. Лично я зачастую добавляю небольшую защиту от ошибок, проверяя наличие элемента перед манипуляцией его стилями. Иногда обновляю код, чтобы учитывать динамические изменения DOM, особенно если элементы могут появляться асинхронно. Закон в том, что всегда удобно иметь небольшие проверки для стабильной работы функционала.

Здорово, как и в других ответах, просто и понятно. Меня интересует, как вы справляетесь с динамически добавляемыми элементами? Иногда кажется, что даже небольшая проверка помогает избежать ошибок. Пробовали ли вы оптимизировать переключение блоков для больших страниц?