W3docs

Librerie per la Manipolazione del DOM

Scopri come le librerie per la manipolazione del DOM come jQuery semplificano la selezione di elementi, la gestione degli eventi e la modifica del DOM.

Introduzione alle Librerie

La manipolazione del DOM è un aspetto fondamentale dello sviluppo web, che consente contenuti dinamici ed esperienze utente interattive. Mentre il JavaScript vanilla mette a disposizione metodi potenti per interagire con il DOM, le librerie per la manipolazione del DOM racchiudono quei metodi in un'API più breve e coerente. Erano essenziali nell'era dei browser inconsistenti e restano utili per lo sviluppo rapido e le codebase legacy.

Questa guida spiega cosa fanno queste librerie, quando hanno ancora senso nel 2024+ e come usare la più popolare — jQuery — per selezionare elementi, gestire eventi e modificare il DOM. Mostra anche gli equivalenti vanilla moderni, così puoi decidere quando una libreria merita davvero il suo posto.

Una libreria per la manipolazione del DOM è uno strato di JavaScript che espone funzioni di utilità per compiti che altrimenti scriveresti a mano: trovare elementi, leggere e scrivere il loro contenuto, associare listener di eventi, animare ed effettuare richieste di rete. Invece di document.querySelectorAll seguito da un ciclo, scrivi un'unica chiamata espressiva che opera su tutti gli elementi corrispondenti contemporaneamente.

Perché Usare una Libreria per la Manipolazione del DOM?

Usare una libreria per la manipolazione del DOM offre diversi vantaggi:

  1. Sintassi Semplificata: Le librerie offrono spesso una sintassi più concisa e leggibile rispetto al JavaScript vanilla. Una singola chiamata può operare sull'intera collezione di elementi senza un ciclo esplicito.
  2. Compatibilità Cross-Browser: Le librerie hanno storicamente smussato le inconsistenze tra browser (si pensi all'attachEvent di Internet Explorer rispetto allo standard addEventListener). Era la loro funzionalità originale di punta.
  3. Funzionalità Avanzate: Le librerie includono helper integrati — animazioni, AJAX, attraversamento del DOM, effetti — che richiederebbero molte righe in JavaScript puro.
  4. Produttività Migliorata: Astraendo i compiti comuni, le librerie ti permettono di scrivere meno codice e concentrarti sulle funzionalità.

Quando potresti non aver bisogno di una libreria

I browser moderni implementano un'API DOM ricca e standardizzata, quindi molti motivi per ricorrere a una libreria sono venuti meno:

  • document.querySelector / querySelectorAll coprono nativamente le ricerche tramite selettori CSS.
  • element.classList, el.append(), el.closest() ed el.matches() sostituiscono i comuni helper di jQuery.
  • fetch() sostituisce $.ajax, e la Web Animations API copre molti effetti.

Se stai avviando un nuovo progetto che si rivolge solo a browser evergreen, puoi spesso fare a meno della libreria e distribuire meno JavaScript. Ricorrici quando stai mantenendo codice jQuery esistente, hai bisogno del suo ecosistema di plugin, o vuoi la sua sintassi concisa per prototipi rapidi.

Il panorama delle librerie

LibreriaAmbitoStato attuale
jQueryDOM generale, eventi, AJAX, animazioneMaturo; ancora comune nelle app legacy e nei temi CMS (es. WordPress)
CashAPI simile a jQuery, ~80% più leggeraDrop-in leggero per i browser moderni
ZeptoCompatibile con jQuery, ottimizzato per mobileLargamente superato dalle API native
Umbrella JSPiccoli helper DOM/eventiDi nicchia, solo browser moderni

I concetti di seguito usano jQuery perché la sua API ha definito il modello che gli altri imitano.

Fondamenti di jQuery

jQuery è una libreria JavaScript veloce, leggera e ricca di funzionalità. Rende molto più semplici attività come l'attraversamento e la manipolazione di documenti HTML, la gestione degli eventi e le animazioni, grazie a un'API facile da usare che funziona su una moltitudine di browser.

Tutto in jQuery inizia con la funzione globale $ (un alias per jQuery). Passarle un selettore CSS restituisce un oggetto jQuery — una collezione avvolta di nodi DOM corrispondenti su cui puoi concatenare metodi. Racchiudere il codice in $(document).ready(...) (o la sua forma abbreviata $(function(){ ... })) assicura che il DOM sia completamente analizzato prima di intervenire su di esso, in modo simile all'ascolto dell'evento nativo DOMContentLoaded.

Selezione degli Elementi

La selezione degli elementi in jQuery è semplice e rispecchia i selettori CSS. Confronta queste ricerche equivalenti — la chiamata jQuery si applica a tutte le corrispondenze contemporaneamente, mentre l'API nativa restituisce una NodeList su cui iterare:

// Vanilla JavaScript
document.querySelectorAll(".content").forEach(function (el) {
  el.textContent = "Hello";
});

// jQuery — no explicit loop needed
$(".content").text("Hello");

Consulta Selecting DOM Elements per un'analisi più approfondita dei selettori nativi.

<!DOCTYPE html>
<html>
<head>
    <title>jQuery Element Selection</title>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
    <div class="content">Hello World</div>
    <button id="change-text">Change Text</button>

    <script>
        $(document).ready(function(){
            $("#change-text").click(function(){
                $(".content").text("Hello jQuery");
            });
        });
    </script>
</body>
</html>

Questo esempio mostra come selezionare elementi con jQuery e modificare il loro contenuto testuale quando si fa clic su un pulsante.

Gestione degli Eventi

jQuery semplifica la gestione degli eventi con i suoi metodi intuitivi. Il metodo .on() è il modo moderno e preferito per associare i handler; supporta anche la delega degli eventi, consentendo a un singolo listener su un genitore di gestire gli eventi degli elementi figli attuali e futuri. Scopri di più in Event Handling in the DOM.

<!DOCTYPE html>
<html>
<head>
    <title>jQuery Event Handling</title>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
    <button id="click-me">Click Me</button>

    <script>
        $(document).ready(function(){
            $("#click-me").on("click", function(){
                alert("Button clicked!");
            });
        });
    </script>
</body>
</html>

Questo esempio mostra come gestire un evento click su un pulsante usando jQuery, visualizzando un messaggio di avviso quando il pulsante viene cliccato.

Manipolazione del DOM

jQuery fornisce numerosi metodi per manipolare facilmente il DOM — .append(), .prepend(), .html(), .text(), .attr(), .css(), .addClass() e .remove(), tra gli altri.

<!DOCTYPE html>
<html>
<head>
    <title>jQuery DOM Manipulation</title>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
    <div id="container">
        <p>Initial Paragraph</p>
    </div>
    <button id="add-content">Add Content</button>

    <script>
        $(document).ready(function(){
            $("#add-content").click(function(){
                $("#container").append("<p>New Paragraph</p>");
            });
        });
    </script>
</body>
</html>

Questo esempio illustra come usare jQuery per aggiungere nuovo contenuto a un elemento esistente nel DOM.

Concatenazione dei Metodi

La maggior parte dei metodi jQuery restituisce lo stesso oggetto jQuery, quindi puoi concatenare le chiamate e applicare più operazioni a una selezione in un'unica espressione. Questo evita di interrogare nuovamente il DOM e mantiene insieme le modifiche correlate:

$("#card")
  .addClass("active")
  .css("color", "white")
  .text("Selected")
  .fadeIn(300);

Ogni chiamata opera sul risultato della precedente, leggendo dall'alto verso il basso come una frase.

jQuery vs. JavaScript Vanilla

Se stai valutando se vale la pena usare una libreria, ecco come le operazioni comuni si mappano sugli equivalenti nativi disponibili in ogni browser moderno:

OperazionejQueryJavaScript Vanilla
Seleziona tutte le corrispondenze$(".item")document.querySelectorAll(".item")
Imposta il testo$(el).text("Hi")el.textContent = "Hi"
Aggiungi una classe$(el).addClass("on")el.classList.add("on")
Aggiungi un listener$(el).on("click", fn)el.addEventListener("click", fn)
Aggiungi HTML$(el).append("<p>x</p>")el.insertAdjacentHTML("beforeend", "<p>x</p>")
Trova l'antenato più vicino$(el).closest(".box")el.closest(".box")

Per nuovi progetti che puntano ai browser moderni, la colonna nativa è di solito tutto ciò di cui hai bisogno. Consulta DOM Manipulation Techniques per i pattern nativi.

Best Practice

  1. Mantieni jQuery Aggiornato: Usa sempre l'ultima versione di jQuery per beneficiare dei miglioramenti delle prestazioni e delle patch di sicurezza.
  2. Usa un CDN: Distribuisci jQuery da una Content Delivery Network (CDN) per migliorare i tempi di caricamento e aumentare la probabilità che venga memorizzato nella cache dal browser dell'utente.
  3. Minimizza l'Uso di jQuery: Usa jQuery solo quando offre un chiaro vantaggio rispetto al JavaScript vanilla, soprattutto con i browser moderni che supportano efficacemente la maggior parte delle operazioni DOM standard.
  4. Concatena i Metodi: Sfrutta la capacità di jQuery di concatenare metodi per un codice più conciso e leggibile.
  5. Ottimizza i Selettori: Usa selettori specifici ed efficienti per ridurre al minimo l'overhead delle prestazioni.

Conclusione

L'utilizzo di librerie come jQuery per la manipolazione del DOM può migliorare notevolmente il tuo flusso di lavoro di sviluppo web, offrendo sintassi semplificata, compatibilità cross-browser e funzionalità estese. Seguendo le best practice, puoi assicurarti che l'uso di queste librerie sia efficiente, manutenibile ed efficace. Sfrutta la potenza delle librerie per creare applicazioni web dinamiche e interattive con facilità.

Esercitazione

Pratica
Quali delle seguenti affermazioni sulle librerie per la manipolazione del DOM sono vere?
Quali delle seguenti affermazioni sulle librerie per la manipolazione del DOM sono vere?
Was this page helpful?