У меня есть форма автозаполнения, в которой пользователь может ввести термин, и он скрывает все элементы <li>
, которые не содержат этот термин.
Я изначально переместил все <li>
с помощью jQuery each
и применил .hide()
к тем, которые не содержали этот термин. Это был ПУТЬ слишком медленно.
Я обнаружил, что более быстрый способ - пропустить все <li>
и применить класс .hidden
ко всем, что нужно скрывать, а затем в конце цикла сделать $('.hidden').hide()
. Это кажется хакером, хотя.
Возможно, более быстрый способ переписать правило CSS для класса .hidden
, используя document.styleSheets
. Может ли кто-нибудь подумать о еще лучшем способе?
EDIT: Позвольте мне уточнить, что я не уверен, что слишком много людей знают о. Если вы изменяете DOM в каждой итерации цикла, и это изменение заставляет страницу перерисовываться, это будет МНОГО медленнее, чем "подготовка" всех ваших изменений и применение их сразу сразу после завершения цикла.