Метад 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,
    які фільтруе набор абраных элементаў па нашчадках