Показать сообщение отдельно
  #2 (permalink)  
Старый 02.02.2022, 21:12
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сначала то, что мне непонятно.
<li><div id="Вариант"><div class="inline a111 item"><a>Вариант</a></li>

Что это за конструкция? Где </div>? Зачем там <a>...</a> без href?

В #myDropdown список <a> фиксирован?
Тогда можно сначала получить массив строк и поиск осуществлять в нем

a = div.querySelectorAll('a')
const sarr = [...a].map( a => a.textContent.toUpperCase())

А в самой фунции
for(var i = 0; i < a.length; i++) {
     if (filter.length) {
         if (sarr[i].includes(filter)) {
             arr.push([i]);
             a[i].hidden = false;
         } else {
             a[i].hidden = true;
         }
    } else {
            a[i].hidden = false;
    }
}


Тогда и третий цикл (когда фильтр пустой) не нужен будет

Вам точно нужно любое вхождение фильтра, а не с начала строки?
Если только с начала, то лучше использовать startsWith , вместо includes

Последний раз редактировалось voraa, 02.02.2022 в 21:35.
Ответить с цитированием