jQuery in modo succinto attraversando con jQuery

Differenza tra i metodi find () e filter ()

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.


Passando filter () una funzione invece di un'espressione

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.

    
  • jQuery è fantastico.
  • È leggero.
  • È gratis!
  • jQuery rende tutto semplice.

Attraversando il DOM

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.


Metodi di movimento Accetta le espressioni CSS come argomenti facoltativi

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')