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));