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

Как при клике по однотипным элементам делать их текстовое содержимое значением input'а?

Есть массив ссылок с одним классом и одно поле input:

<a href="#" class="link">Инфо1</a>
<a href="#" class="link">Инфо2</a>
<a href="#" class="link">Инфо3</a>
<a href="#" class="link">Инфо4</a>
<a href="#" class="link">Инфо5</a>

<input type="text" id="textLink" value="">

Как при клике на ссылку перенести ее текст внутрь input? На чистом js и максимально кратко.
  • Вопрос задан
  • 745 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя 0xD34F К ответам на вопрос (2)
0xD34F
@0xD34F Куратор тега JavaScript
const input = document.querySelector('#textLink');
const buttonSelector = '.link';

Делегирование, назначаем обработчик клика один раз:

document.addEventListener('click', e => {
  const button = e.target.closest(buttonSelector);
  if (button) {
    input.value = button.innerText;
  }
});

Или, назначаем обработчик клика каждому элементу индивидуально:

document.querySelectorAll(buttonSelector).forEach(function(n) {
  n.addEventListener('click', this);
}, e => input.value = e.currentTarget.textContent);
Ответ написан
Комментировать