Фильтры в jQuery расширяют селекторы стандартного CSS и позволяют уточнять выборку элементов, основываясь на их состоянии, позиции в наборе или атрибутах. Фильтрация значительно облегчает манипуляции с DOM, избавляя от необходимости вручную перебирать коллекции узлов.
Фильтры позиций используют для выбора элементов по их порядку в наборе. Фильтры содержимого помогают искать элементы по тексту или наличию дочерних узлов. Фильтры форм применяются к интерактивным элементам: полям, чекбоксам, радио-кнопкам. Фильтры видимости позволяют учитывать состояние отображения на странице. Фильтры атрибутов уточняют выборку по наличию или значению атрибутов.
Используются чаще всего для упорядоченных списков и таблиц.
:first и :last возвращают первый и
последний элемент найденного набора.:eq(index) выбирает элемент по индексу, начиная с
нуля.:gt(index) и :lt(index) фильтруют
элементы, индексы которых больше или меньше указанного.:even и :odd выделяют элементы с четными
или нечетными индексами, что удобно при оформлении таблиц и
списков.Пригодны для анализа структуры и текста.
:contains("строка") выбирает элементы, содержащие
заданный фрагмент текста.:has(selector) фильтрует элементы, внутри которых
присутствует хотя бы один дочерний элемент, совпадающий с
селектором.:empty выделяет элементы без содержимого, включая
отсутствие текстовых узлов.:parent наоборот выбирает элементы, у которых есть
содержимое.Поддерживают учет CSS-состояния элементов.
:visible возвращает элементы, отображаемые на
странице.:hidden выделяет скрытые элементы, независимо от того
скрыты они через CSS, атрибуты или отсутствуют в потоке из-за нулевых
размеров.Взаимодействие этих фильтров удобно при создании динамических интерфейсов, где управление отображением часто происходит с помощью эффектов jQuery.
Ориентированы на обработку пользовательского ввода.
:text, :password, :checkbox,
:radio, :file, :submit,
:reset, :button, :image — фильтры
для выбора элементов по типу.:enabled и :disabled учитывают состояние
доступности.:checked выделяет выбранные чекбоксы и
радио-кнопки.:selected позволяет работать с выбранными пунктами
<option> в выпадающих списках.Хотя атрибутные фильтры в первую очередь относятся к CSS-селекторам, jQuery поддерживает расширенный синтаксис и активно применяет его вместе с остальными фильтрами.
[attr] выбирает элементы, содержащие указанный
атрибут.[attr="value"] фильтрует по точному совпадению
значения.[attr!="value"] выделяет элементы, значение атрибута
которых отлично от указанного.[attr^="value"], [attr$="value"],
[attr*="value"] используются для выбора по префиксу,
суффиксу или вхождению.Фильтры свободно комбинируются. Возможность соединять позиционные, атрибутные, видимые и прочие фильтры дает точный контроль над выборкой. Например, выделение всех четных строк таблицы, содержащих определенное слово, или выбор скрытых активных полей формы.
Чрезмерные и сложные комбинированные фильтры увеличивают нагрузку на парсер селекторов. Оптимизация достигается за счет ограничения области поиска через контекстные селекторы, предварительного кэширования коллекций и разумного использования специфичных фильтров вместо универсальных.
Фильтры в jQuery обеспечивают гибкий и выразительный стиль работы с DOM, в котором логика выбора элементов становится компактной, декларативной и устойчивой к изменениям структуры документа.