Metoden filter

Metoden filter behåller i uppsättningen endast de element som uppfyller en viss selektor.

Syntax

Filtrering efter selektor:

javascript.filter(selektor);

Parametern kan också vara DOM-element eller ett jQuery-objekt:

javascript.filter(DOM-element eller jQuery-objekt);

Man kan också filtrera element med hjälp av en funktion, som anropas separat för varje av de valda elementen. Om den returnerar true kommer det aktuella elementet att inkluderas i slutresultatet, om false - kommer det inte att inkluderas. Själva elementen är tillgängliga i funktionen, i variabeln this, och deras ordningsnummer i uppsättningen — i variabeln index:

javascript.filter(function(index, elem))

Exempel

Låt oss hitta alla stycken, sätta texten '!' i början på dem med hjälp av prepend, sedan från de hittade endast få styckena med klassen www med hjälp av filter och sätta texten '?' i slutet på dem med hjälp av 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-koden kommer att se ut så här:

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

Exempel

Låt oss med hjälp av en funktion hitta alla stycken som har taggen strong och sätta texten '!!!' på dem:

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-koden kommer att se ut så här:

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

Se även

  • metoden find,
    som hittar element efter selektor bland de redan hittade
  • metoden has,
    som filtrerar uppsättningen av valda element efter avkomlingar