De filter()
methode wordt gebruikt om de huidige set elementen in de wrapset te filteren. Het gebruik ervan moet worden overgelaten aan taken waarvoor een verzameling elementen moet worden gefilterd die al zijn geselecteerd. De onderstaande code filtert bijvoorbeeld de drie elementen in de wrapset.
eerste
midden-
laatste
Opmerkingen: Tijdens gebruik filter()
, vraag jezelf altijd af of het absoluut noodzakelijk is. Bijvoorbeeld, . $ ( 'P') filter ( ': niet (: first): niet (: laatste)')
kan zonder worden geschreven filter()
$ ( 'T: geen (: first): niet (: laatste)').
De vind()
methode, aan de andere kant, kan worden gebruikt om verder afstammelingen van de momenteel geselecteerde elementen te vinden. Denken aan vind()
meer zoals het bijwerken of wijzigen van de huidige omwikkelde set met nieuwe elementen die zijn ingekapseld in de elementen die al zijn geselecteerd. De onderstaande code verandert bijvoorbeeld de ingepakte set van elementen tot twee
elementen door te gebruiken
vind()
.
eerste
midden-
laatste
Opmerkingen: U kunt de elementen in de omslag eerder combineren met het gebruik van de vind()
methode met de huidige elementen met behulp van andSelf ()
- bv. $ ( 'P'). Vinden ( 'sterke'). AndSelf ()
.
Het concept om mee te nemen is dat filter()
zal alleen de momenteel geselecteerde elementen in de wrapset die is ingesteld verminderen (of filteren) vind()
kan eigenlijk een geheel nieuwe set van omwikkelde elementen maken.
Opmerkingen: Beide vind()
en filter()
zijn destructieve methoden die ongedaan kunnen worden gemaakt door te gebruiken einde()
, waardoor de omwikkelde set eerder terugkeert naar de vorige staat vind()
of filter()
waren gebruikt.
Voordat u wegloopt en een aangepast filter maakt voor het selecteren van elementen, kan het zinvoller zijn om het passeren over te slaan filter()
methode een functie waarmee u elk element in de wrapper set voor een bepaald scenario kunt bekijken.
Stel dat u bijvoorbeeld alles wilt inpakken elementen in een HTML-pagina met een
element dat momenteel niet is ingepakt met dit element.
U zou een aangepast filter kunnen maken om deze taak te volbrengen, of u zou het kunnen gebruiken filter()
methode door deze een functie door te geven die bepaalt of de ouder van het element een is element, en zo niet, verwijder dan het element uit de set voordat u de
elementen die in de set blijven met een
element.
In het volgende voorbeeld selecteer ik elke element in de HTML-pagina, en dan passeer ik de
filter()
methode een functie die wordt gebruikt om over elk element te itereren (met deze
) in de wrapset, controleren om te zien of de het ouderelement van elementen is een
element.
Merk op dat ik de !
operator om een Booleaanse waarde van true in false te wijzigen. Dit is omdat ik wil verwijderen elementen uit de set die hebben
elementen als hun bovenliggende element. De functie doorgegeven aan de
filter()
methode verwijdert alleen elementen uit de set als de functie false retourneert.
Het belangrijkste punt is dat als je te maken hebt met een geïsoleerde situatie, je een aangepast filter maakt, bijvoorbeeld. : findImgWithNoP
-voor een enkele situatie kan worden vermeden door simpelweg de filtermethode door te laten met een functie die aangepaste filtering kan uitvoeren. Dit concept is vrij krachtig. Overweeg wat mogelijk is als we een reguliere expressietest gebruiken in combinatie met de filter()
methode.
U kunt eenvoudig de DOM naar voorouderelementen verplaatsen met behulp van de ouder()
, ouders()
, en dichtst ()
methoden. Het is van cruciaal belang de verschillen tussen deze methoden te begrijpen. Bekijk de onderstaande code en zorg ervoor dat u de verschillen begrijpt tussen deze jQuery-doorvoermethoden.
Opmerkingen: dichtst ()
en ouders()
lijkt misschien dezelfde functionaliteit te hebben, maar dichtst ()
zal het momenteel geselecteerde element in de filtering opnemen.dichtst ()
stopt met doorrijden zodra het een overeenkomst vindt, terwijl ouders()
krijgt alle ouders en filtert vervolgens op uw optionele selector. daarom, dichtst ()
kan maximaal één element retourneren.
CSS-expressies worden niet alleen doorgegeven aan de jQuery-functie voor het selecteren van elementen, maar ze kunnen ook worden doorgegeven aan verschillende van de verplaatsingsmethoden. Het is misschien gemakkelijk om dit te vergeten, omdat veel van de verplaatsingsmethoden functioneren zonder dat er überhaupt een expressie hoeft te worden gebruikt - bijv. next ()
. De expressie is optioneel voor de volgende traversal-methoden, maar vergeet niet dat u de mogelijkheid hebt om een expressie voor filteren op te geven.
kinderen ( 'expressie')
next ( 'expressie')
nextAll ( 'expressie')
ouder ( 'expressie')
ouders ( 'expressie')
prev ( 'expressie')
prevAll ( 'expressie')
siblings ( 'expressie')
dichtstbijzijnde ( 'expressie')