Изменение цвета текста HTML кнопки несколько раз с помощью функции JS
Я пытаюсь написать функцию, которая изменит цвет текста кнопки на красный при первом щелчке, зеленый при втором щелчке и обратно на черный при третьем щелчке (и так далее). Моя идея заключается в том, что это должно быть довольно просто выполнить с помощью оператора if else, который проверяет цвет кнопки, а затем изменяет его. Я получил цвет, чтобы изменить на первом щелчке просто отлично, но я, кажется, не в состоянии получить какой-либо результат на следующих щелчках. Начальный цвет текста устанавливается встроенным в тег кнопки.
Что я уже пробовал:
До сих пор у меня есть ряд кнопок, которые содержат onclick = "changeColor(this) и вызов:
`function changeColor(alphaButton) { if (alphaButton.style.color === "black") { alphaButton.style.color = "red"; } else if (alphaButton.style.color === "red") { alphaButton.style.color = "green"; } else if (alphaButton.style.color === "green") { alphaButton.style.color = "black"; } } `
Оператор if работает нормально, но я не уверен, почему он не работает дальше этого. Любая помощь будет очень признательна!
[ОБНОВЛЕНИЕ]
Оказывается, проверка цвета не могла быть выполнена, потому что я забыл правильно установить ее с самого начала. Следующий код был рекомендован мне и отлично работает:
const colors = ["black", "red", "green"]; function changeColor(alphaButton) { var current = alphaButton.dataset.ci || 0; current = (current + 1) % colors.length; alphaButton.dataset.ci = current; alphaButton.style.color = colors[current]; }