Il filtro()
il metodo viene utilizzato per filtrare il set corrente di elementi contenuti nel set di wrapper. Il suo utilizzo dovrebbe essere lasciato a compiti che richiedono il filtraggio di un insieme di elementi già selezionati. Ad esempio, il codice seguente filtrerà i tre elementi contenuti nel set di wrapper.
primo
mezzo
scorso
Gli appunti: Quando si usa filtro()
, chiediti sempre se è assolutamente necessario. Per esempio, . $ ( 'P') filtrare ( ': not (: in primo luogo): not (: ultima)')
potrebbe essere scritto senza filtro()
$ ( 'P: not (: in primo luogo): not (: ultima)').
Il trova()
il metodo, d'altra parte, può essere usato per trovare ulteriori discendenti degli elementi attualmente selezionati. Pensa a trova()
più come aggiornare o modificare il set avvolto corrente con nuovi elementi che sono incapsulati all'interno degli elementi già selezionati. Ad esempio, il codice seguente cambierà il set avvolto da elementi a due
elementi usando
trova()
.
primo
mezzo
scorso
Gli appunti: Puoi effettivamente combinare gli elementi nel wrapper precedente all'uso di trova()
metodo con gli elementi attuali usando andSelf ()
- per esempio. $ ( 'P'). Find ( 'forte'). AndSelf ()
.
Il concetto da portare via è quello filtro()
ridurrà (o filtrerà) solo gli elementi attualmente selezionati nel set di wrapper trova()
può effettivamente creare un set completamente nuovo di elementi avvolti.
Gli appunti: Tutti e due trova()
e filtro()
sono metodi distruttivi che possono essere annullati usando fine()
, che ripristinerà il set spostato al precedente stato precedente trova()
o filtro()
erano abituati.
Prima di scappare e creare un filtro personalizzato per la selezione degli elementi, potrebbe essere più sensato passare semplicemente il movimento filtro()
metodo una funzione che ti permetterà di esaminare ogni elemento nel set di wrapper per un particolare scenario.
Ad esempio, diciamo che ti piacerebbe avvolgere tutto elementi in una pagina HTML con a
elemento attualmente non incluso in questo elemento.
È possibile creare un filtro personalizzato per svolgere questa attività, oppure è possibile utilizzare il filtro()
metodo passandogli una funzione che determinerà se il genitore dell'elemento è a elemento, e in caso contrario, quindi rimuovere l'elemento dal set prima di avvolgere il
elementi rimasti nel set con a
elemento.
Nell'esempio seguente, seleziono ogni elemento nella pagina HTML, e poi passo il
filtro()
metodo una funzione che viene utilizzata per scorrere su ciascun elemento (usando Questo
) nel set di wrapper, controllando se il file l'elemento genitore degli elementi è a
elemento.
Si noti che sto usando il !
operatore per modificare un valore booleano tra true e false. Questo perché voglio rimuovere elementi dal set che hanno
elementi come elemento principale. La funzione passata a
filtro()
il metodo rimuoverà solo gli elementi dall'insieme se la funzione restituisce false.
Il punto principale è che se hai a che fare con una situazione isolata, creando un filtro personalizzato, ad es. : findImgWithNoP
-per una singola situazione può essere evitato semplicemente passando il metodo del filtro una funzione che può fare il filtraggio personalizzato. Questo concetto è abbastanza potente. Considera cosa è possibile quando usiamo un test di espressioni regolari in congiunzione con il filtro()
metodo.
Puoi facilmente attraversare il DOM agli elementi degli antenati usando il genitore()
, genitori ()
, e più vicina()
metodi. Comprendere le differenze tra questi metodi è fondamentale. Esamina il codice qui sotto e assicurati di comprendere le differenze tra questi metodi di attraversamento di jQuery.
Gli appunti: più vicina()
e genitori ()
potrebbe sembrare avere la stessa funzionalità, ma più vicina()
includerà effettivamente l'elemento attualmente selezionato nel suo filtraggio.più vicina()
smette di attraversare una volta che trova una corrispondenza, mentre genitori ()
ottiene tutti i genitori e quindi i filtri sul selettore opzionale. Perciò, più vicina()
può solo restituire un massimo di un elemento.
Le espressioni CSS non vengono passate solo alla funzione jQuery per selezionare gli elementi, ma possono anche essere passate a diversi metodi di attraversamento. Potrebbe essere facile dimenticarlo perché molti dei metodi di attraversamento funzionano senza dover utilizzare alcuna espressione, ad es. Il prossimo()
. L'espressione è facoltativa per i seguenti metodi di attraversamento, ma ricorda che hai la possibilità di fornire un'espressione per il filtro.
bambini ( 'espressione')
successivo ( 'espressione')
nextAll ( 'espressione')
genitore ( 'espressione')
genitori ( 'espressione')
prev ( 'espressione')
prevAll ( 'espressione')
fratelli ( 'espressione')
più vicina ( 'espressione')