Подтвердить что ты не робот

Самый эффективный способ скрыть/показать до 100 элементов DOM?

Предположим, что у вас есть не более 100 элементов, в которых их типы и формат не изменяются, но их контекст делает. (Они в основном строки)
Эти строки вокруг привязаны к входу и будут меняться по мере ввода пользователем.

Каким будет наилучший подход к максимальной производительности? Повторное использование элементов, не изменяя их контекста? Что-нибудь еще?

Изменить, уточнение:
Алгоритм поиска не связан, но я использую структуру MVVM (angularjs), поэтому поиск, который я делаю, выполняется на JavaScript и не является узким местом; после получения результатов я обновляю соответствующим образом.

Также мне не нужно искать элементы над DOM, у меня есть ссылки на элементы, я хочу минимизировать время выполнения во время обновления.

4b9b3361

Ответ 1

Для кода это будет сделано,

$(element).css('display' , 'none');

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

$('container').find('your_elements').css('display' , 'none');

ИЛИ

$('your_elements', 'container').css('display' , 'none');

Сделаем это.

Никогда:

$('your_elements').css('display' , 'none'); 

JS будет искать весь домен для этого

Ответ 2

Если у вас есть только 100 элементов, это не имеет большого значения. Просто установите свойство display своего объекта стиля, чтобы показать или скрыть их.

Ответ 3

Используйте уникальный идентификатор всех строк и используйте jquery для управления им, изменив их значение.

Ответ 4

Лучший способ может быть, обернуть все эти элементы в div и задать стиль для внешнего div (при условии, что они вместе, как вы сказали, это строки)

<div id="wrapper">
   <!-- Your dom elements -->
</div>

Установите правильный стиль для вашего обертки div.

И, как правило, я не думаю, что нам нужно беспокоиться о перфомансе на таких вещах, как очень тривиальные операции.

Ответ 5

Я думаю, создайте класс CSS с отображением none и примените этот класс к элементам TR, выполнив это, вы сможете использовать селектор jquery для последующего использования. $('TR.hidden') и if(!$('TD').hasClass('hidden'))