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