Добавьте атрибут data-spoiler-id к каждому спойлеру
<div class="spoiler" data-spoiler-id="spoiler1">
<div class="spoiler-header">Имя спойлера</div>
<div class="spoiler-content">
<a href="#">Имя ссылки1</a>
<a href="#">Имя ссылки2</a>
<a href="#">Имя ссылки3</a>
</div>
</div>
// Получить все спойлеры на странице
const spoilers = document.querySelectorAll('.spoiler');
// Пройти по каждому спойлеру и добавить обработчик клика
spoilers.forEach(spoiler => {
const spoilerId = spoiler.getAttribute('data-spoiler-id');
const isSpoilerOpen = localStorage.getItem(spoilerId) === 'true';
// Установить начальное состояние спойлера (открыт/закрыт)
if (isSpoilerOpen) {
spoiler.classList.add('open');
} else {
spoiler.classList.remove('open');
}
// Добавить обработчик клика для сохранения состояния спойлера в localStorage
spoiler.addEventListener('click', () => {
const isOpen = spoiler.classList.contains('open');
localStorage.setItem(spoilerId, !isOpen);
});
});
.spoiler.open .spoiler-content {
display: block;
}
Теперь каждый раз, когда пользователь открывает или закрывает спойлер, его состояние будет сохраняться в localStorage. При обновлений страницы будет отображаться в котором было до этого.