filtru()
metoda este folosită pentru a filtra setul curent de elemente conținute în setul de învelitori. Utilizarea acestuia ar trebui lăsată la sarcini care necesită filtrarea unui set de elemente deja selectate. De exemplu, codul de mai jos va filtra cele trei elemente conținute în setul de învelitori.
primul
mijloc
ultimul
Note: Atunci când se utilizează filtru()
, întotdeauna întrebați-vă dacă este absolut necesar. De exemplu, . $ ( 'P') filtru ( ': nu (: în primul rând): nu (: ultima)')
ar putea fi scrise fără filtru()
$ ( 'P: nu (: în primul rând): nu (: ultima)').
găsi()
metoda, pe de altă parte, poate fi utilizată pentru a găsi în continuare descendenții elementelor selectate în mod curent. A se gandi la găsi()
mai mult ca actualizarea sau modificarea setului actual înfășurat cu elemente noi care sunt încapsulate în elementele deja selectate. De exemplu, codul de mai jos va schimba setul înfășurat elemente la două
elemente prin utilizarea
găsi()
.
primul
mijloc
ultimul
Note: De fapt, puteți combina elementele din ambalaj înaintea utilizării găsi()
metoda cu elemente actuale prin utilizarea andSelf ()
- de exemplu. $ ( 'P'). Găsește ( 'puternic'). AndSelf ()
.
Conceptul care trebuie luat este acela filtru()
va reduce (sau filtra) elementele selectate în prezent în setul de wrapper în timp ce găsi()
poate crea un set complet nou de elemente înfășurate.
Note: Ambii găsi()
și filtru()
sunt metode distructive care pot fi anulate prin utilizarea Sfârșit()
, care va readuce setul înfășurat la starea anterioară înainte găsi()
sau filtru()
au fost folosite.
Înainte de a fugi și de a crea un filtru personalizat pentru selectarea elementelor, ar putea fi mai ușor să treci pur și simplu traversarea filtru()
o funcție care vă va permite să examinați fiecare element din setul de învelitori pentru un anumit scenariu.
De exemplu, să presupunem că doriți să încheiați toate elemente într - o pagină HTML cu
element care nu este în prezent înfășurat cu acest element.
Ați putea crea un filtru personalizat pentru a îndeplini această sarcină sau ați putea folosi filtru()
metodă prin transmiterea acesteia o funcție care va determina dacă părintele elementului este a element și, dacă nu, eliminați elementul din set înainte de a încheia
elemente rămase în set cu a
element.
În exemplul următor, selectez fiecare element în pagina HTML și apoi trec
filtru()
o funcție care este folosită pentru a itera peste fiecare element (folosind acest
) în setul de învelitori, verificând dacă Elementul parental al elementelor este a
element.
Observați că folosesc !
operator pentru a schimba valoarea booleană a valorii adevărate la falsă. Acest lucru se datorează faptului că vreau să-l elimin elemente din setul care au
elemente ca element parental. Funcția a trecut la
filtru()
metoda va elimina numai elemente din set dacă funcția revine false.
Ideea principală este că, dacă aveți de-a face cu o situație izolată, creați un filtru personalizat, de ex. : findImgWithNoP
-pentru o singură situație poate fi evitată prin simpla trecere a metodei de filtrare a unei funcții care poate face filtrarea personalizată. Acest concept este destul de puternic. Luați în considerare ceea ce este posibil atunci când folosim un test de expresii regulate împreună cu filtru()
metodă.
Puteți să traversați cu ușurință elementul DOM la elemente strămoșe folosind mamă()
, părinţi()
, și cel mai apropiat()
metode. Înțelegerea diferențelor dintre aceste metode este critică. Examinați codul de mai jos și asigurați-vă că înțelegeți diferențele dintre aceste metode de traversare jQuery.
Note: cel mai apropiat()
și părinţi()
ar putea să pară că au aceleași funcționalități, dar cel mai apropiat()
va include efectiv elementul selectat în momentul de filtrare.cel mai apropiat()
oprește traversarea odată ce găsește un meci, în timp ce părinţi()
primește toți părinții și apoi filtrează selectorul opțional. Prin urmare, cel mai apropiat()
poate returna un maxim de un element.
Expresiile CSS nu sunt transferate doar la funcția jQuery pentru selectarea elementelor, dar pot fi trecute și la mai multe metode de traversare. S-ar putea să fie ușor de uitat acest lucru deoarece multe dintre metodele de traversare funcționează fără a fi nevoie să utilizați deloc o expresie - de ex. Următor →()
. Expresia este opțională pentru următoarele metode de traversare, dar rețineți că aveți opțiunea de a oferi o expresie pentru filtrare.
copii ( „expresie“)
următor ( „expresie“)
nextAll ( 'expresie')
părinte ( „expresie“)
părinți ( „expresie“)
prev ( 'expresie')
prevAll ( 'expresie')
frați ( „expresie“)
cel mai apropiat ( „expresie“)