Помогите пожалуйста пишу сайт на html css js не могу сделать опрос
Пробовала написать код на js чтобы он запоминал голоса но он не работает помогите пожалуйста
вот код:
const buttons = document.querySelectorAll('.vote-button');
const resultDiv = document.getElementById('result');
const storageKey = 'votedOption';
buttons.forEach(button => {
button.addEventListener('click', () => {
const optionId = button.id;
if (!localStorage.getItem(storageKey)) {
const optionCountElement = document.getElementById(`${optionId}Count`);
const currentCount = parseInt(optionCountElement.innerText.match(/\d+/)[0]);
optionCountElement.innerText = `${optionId}: ${currentCount + 1} голосов`;
localStorage.setItem(storageKey, optionId);
buttons.forEach(btn => {
if (btn.id !== optionId) {
btn.disabled = true;
btn.classList.add('voted');
}
});
}
});
});
// Проверяем наличие сохраненного выбора при загрузке страницы
if (localStorage.getItem(storageKey)) {
const votedOption = localStorage.getItem(storageKey);
disableButtonsExcept(votedOption);
}
function disableButtonsExcept(optionId) {
buttons.forEach(btn => {
if (btn.id !== optionId) {
btn.disabled = true;
btn.classList.add('voted');
}
});
}
.voting-buttons {
display: flex;
justify-content: center;
gap: 10px;
}
.vote-button {
padding: 10px 20px;
font-size: 16px;
border: none;
background-color: #3498db;
color: white;
cursor: pointer;
border-radius: 5px;
transition: background-color 0.3s ease;
}
.vote-button:hover {
background-color: #2980b9;
}
/* Опциональные стили для активной кнопки (если нужно) */
.vote-button:active {
background-color: #1f618d;
}
.voted {
background-color: #ccc;
cursor: not-allowed;
}
<h2>Какой вариант вам нравится больше всего?</h2>
<div class="voting-buttons">
<button class="vote-button" id="option1">Вариант 1</button>
<button class="vote-button" id="option2">Вариант 2</button>
<button class="vote-button" id="option3">Вариант 3</button>
</div>
<div class="result" id="result">
<p>Результаты голосов:</p>
<p id="option1Count">Вариант 1: 0 голосов</p>
<p id="option2Count">Вариант 2: 0 голосов</p>
<p id="option3Count">Вариант 3: 0 голосов</p>
</div>
Источник: Stack Overflow на русском