Pagina web con elementi DOM evidenziati e codice JavaScript senza jQuery

DOM moderno: manipolare interfacce senza jQuery

Non hai più bisogno di jQuery per fare interfacce dinamiche. Scoprirai come usare oggi il DOM con JavaScript nativo in modo semplice e performante.

Per anni, jQuery è stato lo standard per la manipolazione del Document Object Model. Oggi, il DOM JavaScript moderno offre API native potenti, veloci e pulite che rendono le dipendenze esterne spesso superflue. Questo articolo è una guida pratica per abbandonare jQuery e abbracciare la potenza del JavaScript vaniglia.

Perché abbandonare jQuery?

jQuery ha risolto un problema enorme: le incongruità tra i browser. Ha fornito un’API unificata e semplice per compiti complessi. Tuttavia, i browser moderni hanno standardizzato le loro implementazioni JavaScript, rendendo native molte delle funzionalità che jQuery offriva.

Rimuovere jQuery dal tuo stack significa:

  • Performance migliori: Meno kilobyte da scaricare e analizzare per il browser, con un impatto diretto sui Core Web Vitals.
  • Nessuna dipendenza esterna: Il tuo codice è più autonomo e manutenibile.
  • Competenze più attuali: Conoscere le API native del DOM è una competenza fondamentale per ogni sviluppatore front-end moderno.

Selezionare Elementi: Da `$` a `querySelector`

Il cuore di jQuery era la sua funzione dollaro `$` per selezionare elementi. Il JavaScript moderno offre alternative altrettanto potenti e intuitive.

  • document.querySelector(): Seleziona il primo elemento che corrisponde a un selettore CSS.
  • document.querySelectorAll(): Seleziona tutti gli elementi che corrispondono a un selettore CSS, restituendo una NodeList.
// Vecchio approccio con jQuery
const mainTitle = $('#main-title');
const allButtons = $('.btn');

// Approccio con DOM JavaScript moderno
const mainTitleModern = document.querySelector('#main-title');
const allButtonsModern = document.querySelectorAll('.btn');

// Puoi ciclare una NodeList con forEach
allButtonsModern.forEach(button => {
  console.log(button.textContent);
});
Schema dell'albero del DOM JavaScript moderno manipolato da querySelector
Le API native come querySelector permettono una selezione precisa degli elementi nell’albero del DOM.

Manipolare Classi e Stili

Aggiungere, rimuovere o verificare la presenza di classi CSS è un’operazione comune. L’API classList rende tutto incredibilmente semplice, senza bisogno di metodi custom.

const alertBox = document.querySelector('.alert');

// Aggiungere una classe
alertBox.classList.add('alert-success');

// Rimuovere una classe
alertBox.classList.remove('alert-warning');

// Aggiungere o rimuovere una classe (toggle)
alertBox.classList.toggle('is-visible');

// Verificare se una classe esiste
if (alertBox.classList.contains('is-visible')) {
  console.log('La notifica è visibile!');
}

// Manipolare stili inline
alertBox.style.backgroundColor = 'lightblue';

Gestire Eventi con il DOM JavaScript moderno

Il sistema di eventi nativo è maturo e potente. addEventListener è il metodo centrale per associare funzioni a eventi specifici (click, submit, mouseover, etc.). Questo è un pilastro del DOM JavaScript moderno.

const actionButton = document.querySelector('#action-button');

function handleButtonClick(event) {
  // event contiene informazioni sull'evento (es. event.target)
  console.log('Pulsante cliccato!');
  event.target.textContent = 'Cliccato!';
}

// Aggiungere un event listener
actionButton.addEventListener('click', handleButtonClick);

// Rimuovere un event listener (richiede la stessa funzione)
// actionButton.removeEventListener('click', handleButtonClick);

Event Delegation: Efficienza al Potere

Invece di aggiungere un listener a ogni elemento di una lista, è più efficiente aggiungerne uno solo al contenitore padre. Questo pattern, noto come Event Delegation, sfrutta il “bubbling” degli eventi.

const listContainer = document.querySelector('#item-list');

listContainer.addEventListener('click', (event) => {
  // Controlliamo se l'elemento cliccato è un LI
  if (event.target && event.target.matches('li.item')) {
    console.log('Hai cliccato l'item:', event.target.textContent);
    event.target.classList.toggle('selected');
  }
});

Conclusione: Il Futuro è Nativo

Padroneggiare la manipolazione del DOM JavaScript moderno non è più un’opzione, ma una necessità. Le API native sono veloci, supportate da tutti i browser moderni e eliminano la necessità di dipendenze pesanti, portando a siti web più performanti e codice più pulito.

Inizia oggi a convertire i tuoi vecchi script jQuery. La curva di apprendimento è dolce e i benefici in termini di performance e competenze sono enormi. Il web moderno ti ringrazierà.