Как чисто получить определенный c класс из массива classlist? - PullRequest
0 голосов
/ 18 июня 2020

Сегодня я столкнулся с проблемой, я потратил часы, чтобы просто узнать, что это такое, поэтому у меня был элемент, у этого элемента было много классов:

<div id="myId" class="first second iwantthisone fourth"></div>

Я использовал класс из списка для передать его как параметр в другую функцию, поэтому для его получения я делал следующее:

 const myClass = document.getElementById('myId').classList[2];

Почему я выбрал 2? потому что, когда я делал console.log для classList, он давал мне массив (а не обычный массив), и результат был таким:

['first', 'second', 'iwantthisone', 'fourth']

Итак, я думал, что закончил, я развернул свой работать на сервере, я пошел туда, чтобы проверить, все ли в порядке, это не так, и поэтому я здесь, поэтому проблема в том, что порядок элементов в массиве изменился на этот:

['second', 'iwantthisone','first', 'fourth']

Итак, мой старый код работает дольше, мне нужно сделать это:

const myClass = document.getElementById('myId').classList[1];

Что непрактично, мне нужно получить класс, используя такой метод, как фильтр для массива, но похоже, что я могу ' Я не использую его, потому что classList не является обычным, как я уже упоминал.

Любое решение?

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 18 июня 2020

Вы можете использовать фильтр, если вы преобразовали его из массива с помощью Array.from(). Я скептически отношусь к тому, что вы ищете, из-за обсуждения в комментариях, но только исходя из вопроса, это решение.

 const myClassList = document.getElementById('myId').classList;
 var classList = Array.from(myClassList).filter(word => word == "iwantthisone");
 console.log(classList);
 console.log(myClassList);
<div id="myId" class="first second iwantthisone fourth"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...