Как изменить содержимое в кнопке при клике?

Добрый вечер, коллеги. Задача казалось бы простая, но что-то последнее время туплю. Есть три кнопки - 1, 2, 3. При клике на любую кнопку, содержимое кнопок должно меняться вот так - 2, 3, 1 и так по кругу. Если есть у кого догадки, подскажите пожалуйста.
  • Вопрос задан
  • 572 просмотра
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
const buttonSelector = 'button';
const getButtons = () => document.querySelectorAll(buttonSelector);

Можем делегировать обработку кликов по кнопкам:

document.addEventListener('click', e => {
  if (e.target.matches(buttonSelector)) {
    const buttons = getButtons();
    const texts = Array.from(buttons, n => n.textContent);
    for (const [ i, n ] of buttons.entries()) {
      n.textContent = texts[-~i % texts.length];
    }
  }
});

А можем назначить обработчик клика каждой кнопке индивидуально:

const buttons = getButtons();
const onClick = () =>
  buttons.forEach(function(n, i) {
    n.innerText = ++i === buttons.length ? this : buttons.item(i).innerText;
  }, buttons.item(0).innerText);

buttons.forEach(n => n.addEventListener('click', onClick));
Ответ написан
Комментировать
Я скорее всего неправильно понял, но все же

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы