Фильтрация выбранных элементов
.filter()
Фильтрует набор выбранных элементов. Метод имеет два варианта использования:
.filter(selector):jQuery1.0
Фильтрует набор элементов, оставляя только те, которые удовлетворяют селектору selector.
.filter(function(index)):jQuery1.0
Фильтрует набор элементов c помощью заданной функции. Эта функция вызывается отдельно, для каждого из выбранных элементов. Если она возвращает true, то текущий элемент будет включен в конечный результат. Сами элементы доступны в функции, в переменной this, а их порядковые номера в наборе — в переменной index.
Примеры использования:
$("div").filter(".lBlock") | вернет div-элементы с классом lBlock. |
$("div").filter(filterDivs) | вернет div-элементы, "одобренные" функцией filterDivs. |
В действии
Найдем и отметим элементы списка, которые имеют один элемент заключенный в тег <strong> (жирное начертание):
~lt~!DOCTYPE html~gt~ ~lt~html~gt~ ~lt~head~gt~ ~lt~script src="https://code.jquery.com/jquery-latest.js"~gt~~lt~/script~gt~ ~lt~style~gt~ ul{list-style-type:none; padding-left:20px} li{padding:2px} ~lt~/style~gt~ ~lt~/head~gt~ ~lt~body~gt~ ~lt~ul~gt~ ~lt~li~gt~ ~lt~strong~gt~элемент~lt~/strong~gt~ номер 1 ~lt~/li~gt~ ~lt~li~gt~элемент номер 2~lt~/li~gt~ ~lt~li~gt~элемент номер 3~lt~/li~gt~ ~lt~li~gt~ ~lt~strong~gt~элемент~lt~/strong~gt~ номер ~lt~strong~gt~4~lt~/strong~gt~ ~lt~/li~gt~ ~lt~li~gt~элемент номер 5~lt~/li~gt~ ~lt~li~gt~элемент номер 6~lt~/li~gt~ ~lt~/ul~gt~ ~lt~script~gt~ $('li').filter(function(index){ return $('strong', this).length == 1; }).css('background-color', 'red'); ~lt~/script~gt~ ~lt~/body~gt~ ~lt~/html~gt~