Метод 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,
    който филтрира набор от избрани елементи по потомци