10 funzioni di attraversamento davvero utili in jQuery

Con jQuery, la selezione di elementi HTML è ridicolmente facile. Ma a volte, potremmo voler perfezionare ulteriormente la selezione, che può essere una seccatura quando la struttura HTML è complicata. In questo tutorial, esploreremo dieci modi in cui possiamo perfezionare ed estendere una serie di elementi avvolti su cui vogliamo operare.

L'HTML

Prima di tutto, diamo un'occhiata alla semplice pagina web mostrata nella figura sottostante. Selezioneremo elementi in questo tutorial.

  1. div.container è l'elemento di avvolgimento.
  2. div.photo, div.title e div.rating sono figli immediati di div.container.
  3. Ogni div.star è un figlio di div.rating.
  4. Quando un div.star ha la classe 'on', è una stella completa.

Perché attraversare?

Ma perché abbiamo bisogno di perfezionare ulteriormente un insieme di elementi? La sintassi di selezione di jQuery non è abbastanza potente?

Bene, vediamo un esempio. Nella pagina web menzionata sopra, quando si fa clic su una stella, potremmo voler aggiungere la classe "on" a questa stessa stella ea ogni singola stella alla sua sinistra. E potremmo voler cambiare il colore di sfondo del div genitore delle stelle. Quindi abbiamo il seguente codice.

 $ ('. stella'). click (function () $ (this) .addClass ('on'); // Come selezionare il div genitore di 'this'? // Come selezionare le stelle sul lato sinistro di 'Questo'? );

Nella Linea 2, selezioniamo la stella che viene cliccata con 'Questo'. Ma come selezioniamo il div genitore delle stelle? Sì, è div.rating. Ma ce ne possono essere una dozzina div.ratings in una pagina, giusto? Quindi qual è quello che vogliamo? E come selezioniamo tutte le stelle a sinistra dell 'Questo'?

Fortunatamente, jQuery ci consente di ottenere nuovi set avvolti da un set esistente, in base alle relazioni gerarchiche. E questo è in parte ciò che fanno le funzioni di attraversamento.

1. bambini

Questa funzione ottiene i figli immediati di un insieme di elementi.

Questo può essere molto utile in una varietà di situazioni. Guarda la figura qui sotto:

  • Il contenitore delle stelle viene selezionato inizialmente.
  • Un'espressione del selettore viene passata ai bambini () per restringere il risultato fino alle sole stelle complete.
  • Se i bambini () non ricevono parametri, verranno restituiti tutti i bambini immediati.
  • Nessun nipote sarà restituito. scusate.

2. filtro

Questa funzione filtra gli elementi dal set avvolto usando un'espressione selettore passata. Tutti gli elementi che non corrispondono all'espressione verranno rimossi dalla selezione.

Il seguente esempio dovrebbe essere piuttosto semplice. Le stelle piene sono filtrate da una collezione di tutte e cinque le stelle.

3. no

Al contrario di filter (), not () rimuove gli elementi corrispondenti dal set avvolto.

Vedi l'esempio qui sotto. Anche le stelle vengono rimosse dalla selezione, lasciando solo quelle dispari.

Avviso! I selettori "pari" e "dispari" sono a zero indice. Contano l'indice da 0, NON 1.

4. aggiungere

Cosa succede se vogliamo aggiungere alcuni elementi al set avvolto? La funzione add () fa questo.

Di nuovo, molto semplice. La scatola foto è stata aggiunta alla selezione.

5. fetta

A volte potremmo desiderare di ottenere un sottoinsieme del set avvolto, in base alla posizione degli elementi all'interno del set. E slice () è la strada da percorrere.

  • Il primo parametro è la posizione a base zero del primo elemento da includere nella slice restituita.
  • Il secondo parametro è l'indice a base zero del primo elemento NOT da includere nella slice restituita. Se omesso, la sezione si estende fino alla fine del set.
  • Così fetta (0, 2) seleziona le prime due stelle.

6. genitore

La funzione genitore () seleziona il genitore diretto di un insieme di elementi.

Come mostrato nella figura seguente, viene selezionato il genitore diretto della prima stella. Molto utile, hah? Va notato che verrà restituito solo il genitore diretto, motivo per cui è singolare. Nessun nonno o antenato sarà selezionato.

7. genitori

Questo è plurale! La funzione parents () seleziona tutti gli antenati di un insieme di elementi. Intendo TUTTI gli antenati dal genitore diretto fino acorpo' e 'html'. Quindi è meglio passare un'espressione di selettore per restringere il risultato.

Passando '.contenitore'ai genitori (), div.container, che in realtà è il nonno della prima stella, è selezionato.

8. fratelli

Questa funzione seleziona tutti i fratelli (fratelli e sorelle) di un insieme di elementi. È possibile passare un'espressione per filtrare il risultato.

Guarda l'esempio:

  • Chi sono i fratelli della prima stella? Le altre quattro stelle, giusto?
  • I fratelli "dispari" sono selezionati come mostrato. Di nuovo, l'indice è a base zero. Guarda i numeri rossi sotto le stelle.

9. prev & prev All

La funzione prev () seleziona il fratello precedente (uno) e prevAll () seleziona tutti i fratelli precedenti di un insieme di elementi.

Questo è super pratico se stai costruendo un widget di valutazione a stelle. I fratelli precedenti della terza stella sono selezionati.

10. next & nextAll

Queste funzioni funzionano allo stesso modo delle versioni precedenti e precedenti, tranne per il fatto che selezionano i fratelli SUCCESSIVO.

Conclusione

Alla fine, vediamo come queste funzioni risolvono un vero mal di testa per noi.

 $ ('. stella'). click (function () $ (this) .addClass ('on'); // Come selezionare il div genitore di 'this'? $ (this) .parent (). addClass ( 'rated'); // Come selezionare le stelle sul lato sinistro di "this"? $ (this) .prevAll (). addClass ('on'); $ (this) .nextAll (). removeClass ('on' ););

Questo è il vero problema che abbiamo menzionato all'inizio di questo tutorial, giusto? Diverse funzioni di attraversamento sono usate in queste linee di codice.

  • Nella riga 5, guarda l'uso di parent (). Facile, hah?
  • Nelle linee 8 e 9, prevAll () e nextAll () selezionano le stelle complete e le stelle vuote.

Ora, abbiamo un'idea di quanto possano essere pratiche le funzioni di attraversamento. Possono essere anche più potenti se usati insieme. L'output di una funzione può essere l'input di un'altra - vale a dire, sono concatenabili.

Grazie per aver letto! Speriamo che questo tutorial ti renda un po 'più facile la vita quando selezioni gli elementi HTML con jQuery. qualche idea? Quali funzioni di attraversamento ci siamo persi?

  • Seguici su Twitter o iscriviti al feed Nettuts + RSS per altri articoli e tutorial di sviluppo web quotidiano.