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

Как скопировать наименования классов всех input элементов в отдельном блоке в массив?

Добрый день!
На странице есть список ol, внутри находятся теги li в которых текст перемешан с полями input. Как собрать классы всех этих input в отдельный массив?
При этом на странице могут находится и другие инпуты, нужны только те, что внутри этого списка.

https://codepen.io/anon/pen/NEmWxr?editors=1100

<ol>
  <li>Текст <input class="some-class" type="text"> текст текст</li>
  <li>Текст текст<input class="some-class" type="text"> текст текст</li>
  <li>Текст<input class="some-class" type="text"> текст текст текст <input class="some-class" type="text">текст</li>
  <li>Текст текст текст текст текст</li>
  <li>Текст текст <input class="some-class" type="text">текст</li>
  <li>Текст<input class="some-class" type="text"> текст <input class="some-class" type="text">текст текст текст</li>
</ol>
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Откуда надо получить классы:

const inputs = document.querySelectorAll('ol input');

Получаем уникализированный массив классов:

const classes = [...new Set(Array.prototype.flatMap.call(
  inputs,
  n => [...n.classList]
))];

Или, получаем всё, что есть:

const classes = Array
  .from(inputs, n => Array.from(n.classList))
  .flat();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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