Метод filter
Метод filter тўпламда фақат
маълум селекторга мос келадиган
элементларни қолдиради.
Синтаксис
Селектор буйича фильтрация:
.filter(селектор);
Параметр шунингдек DOM элементлари ёки jQuery объекти бўлиши мумкин:
.filter(DOM элемент ёки jQuery объекти);
Элементларни функция ёрдамида ҳам
фильтрация қилиш мумкин, у ҳар бир
танланган элемент учун алоҳида чақирилади. Агар у
true қайтарса, жорий элемент
яхпий натижага киритилади, агар false
- киритилмайди. Элементларнинг ўзи функцияда,
this ўзгарувчисида мавжуд,
уларнинг тартиб рақамлари
тўпламда — index ўзгарувчисида:
.filter(function(index, elem))
Мисол
Барча абзацларни топишга рўхат берамиз, уларнинг бошларига
'!' матнини
prepend
ёрдамида қўйамиз,
сўнгра топилганлардан фақат
www синфига эга бўлган абзацларни
filter ёрдамида ажратамиз
ва уларнинг охирига '?' матнини
append
ёрдамида қўйамиз:
<p>матн</p>
<p>матн</p>
<p class="www">матн</p>
<p class="www">матн</p>
$('p').prepend('!').filter('.www').append('?');
HTML код шундай кўринади:
<p>!матн</p>
<p>!матн</p>
<p class="www">!матн?</p>
<p class="www">!матн?</p>
Мисол
Функция ёрдамида ичида
strong
теги бўлган барча абзацларни топишга рўхат берамиз
ва уларга '!!!' матнини қўйамиз:
<p><strong>матн</strong></p>
<p><strong>матн</strong></p>
<p>матн</p>
<p>матн</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
HTML код шундай кўринади:
<p>!!!</p>
<p>!!!</p>
<p>матн</p>
<p>матн</p>