Задать вопрос
Dunno2018
@Dunno2018

Как заменить текст у элемента в цикле for?

Здравствуйте.
Код - нужно, чтобы при нажатии на кнопку, слово "Цвет" менялось на текст с кнопки, которую нажали.
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Так как у вас там jquery, цикл в явном виде не нужен - метод click назначает обработчик все элементам коллекции:

$('button').click(e => $('.title').text($(e.target).text()));

Вот на чистом js - да, там придётся перебор вручную прописывать. Правда, и в этом случае использование цикла обязательным не будет - для этого у NodeList есть метод:

document.querySelectorAll('button').forEach(function(n) {
  n.addEventListener('click', this);
}, function(e) {
  this.innerText = e.target.innerText;
}.bind(document.querySelector('.title')));

А если вспомнить про такую штуку как делегирование, то можно вообще никак кнопки не перебирать:

document.addEventListener('click', ({ target: t }) => {
  if (t.tagName === 'BUTTON') {
    document.querySelector('.title').textContent = t.textContent;
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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