Метод filter

Метод filter оставляет в наборе только те элементы, которые удовлетворяют определенному селектору.

Синтаксис

Фильтрация по селектору:

javascript.filter(селектор);

Параметр также может быть DOM элементами или объектом jQuery:

javascript.filter(DOM элемент или объект jQuery);

Можно также фильтровать элементы с помощью функции, которая вызывается отдельно для каждого из выбранных элементов. Если она возвращает true, то текущий элемент будет включен в конечный результат, если false - не включен. Сами элементы доступны в функции, в переменной this, а их порядковые номера в наборе — в переменной index:

javascript.filter(function(index, elem))

Пример

Давайте найдем все абзацы, поставим им в начало текст '!' с помощью prepend, затем получим из найденных только абзацы с классом www с помощью filter и поставим им в конец текст '?' с помощью append:

html<p>text</p>
<p>text</p>
<p class="www">text</p>
<p class="www">text</p>
javascript$('p').prepend('!').filter('.www').append('?');

HTML код станет выглядеть так:

html<p>!text</p>
<p>!text</p>
<p class="www">!text?</p>
<p class="www">!text?</p>

Пример

Давайте с помощью функции найдем все абзацы, у которых есть тег strong и поставим им текст '!!!':

html<p><strong>text</strong></p>
<p><strong>text</strong></p>
<p>text</p>
<p>text</p>
javascript$('p').filter(function() {
  return $('strong', this).length === 1;
}).html('!!!');

HTML код станет выглядеть так:

html<p>!!!</p>
<p>!!!</p>
<p>text</p>
<p>text</p>

Смотрите также

  • метод find,
    который находит элементы по селектору среди уже найденных
  • метод has,
    который фильтрует набор выбранных элементов по потомкам