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

Как из UL достать массив текстов LI?

Как из списка UL с помощью JQUERY собрать в массив и поместить его в input в VALUE?

На странице есть такой список, ссылка и input:

<ul class="list">
<li>1 слово</li>
<li>2 слово</li>
<li>3 слово</li>
</ul>
<a class="add" href="#">добавить</a>
<input type="hidden" id="add" name="add"  value="">

Как сделать, чтобы по клику на ссылку .add слова из списка .list добавились в input value с id #add?
Как-то так через пробел:

<input type="hidden" id="add" name="add"  value="1 слово 2 слово 3 слово">
  • Вопрос задан
  • 429 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Откуда надо достать тексты:

const elements = document.querySelectorAll('.list li');
// или
const elements = document.querySelector('.list').children;

Достаём:

const str = Array
  .from(elements, n => n.textContent)
  .join(' ');

// или

const str = ''.concat(...Array.prototype.flatMap.call(
  elements,
  (n, i) => [ i ? ' ' : '', n.innerText ]
));

// или

const str = [...elements].reduce((acc, n, i) => {
  return acc + (i ? ' ' : '') + n.innerHTML;
}, '');

// или

const str = (function get(i, n = elements.item(i)) {
  return n
    ? `${i ? ' ' : ''}${n.lastChild.nodeValue}${get(-~i)}`
    : '';
})(0);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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