2 of 17 menu

Errore nel recupero di un elemento in JavaScript

A volte i programmatori principianti commettono l'errore di utilizzare per recuperare un singolo elemento DOM il metodo querySelectorAll invece del metodo querySelector.

Diamo un'occhiata alle caratteristiche tipiche di questo errore. Supponiamo che ci sia un paragrafo:

<p>testo</p>

Un programmatore ha deciso di recuperare e modificare il testo di questo paragrafo. Per fare ciò, ha ottenuto un riferimento a questo elemento in una variabile, utilizzando erroneamente il metodo sbagliato:

let elem = document.querySelectorAll('p');

Poi il programmatore ha tentato di modificare il testo del paragrafo. Tuttavia, il testo del paragrafo non è cambiato:

elem.textContent = '!!!'; // non ha funzionato

Inoltre, non è apparso alcun errore nella console. Il fatto è che è stata eseguita un'operazione valida, ma non su un singolo elemento, ma su un gruppo. E leggere o modificare il testo di un gruppo di elementi così semplicemente non è possibile - solo iterando attraverso di essi con un ciclo e accedendo a ciascun elemento singolarmente.

Come individuare l'errore

Vediamo come un programmatore dovrebbe agire per individuare questo errore. In realtà, con un po' di esperienza, è facile da individuare grazie ai segni caratteristici.

Supponiamo, tuttavia, che questo non accada. Allora la prima azione del programmatore durante la ricerca degli errori dovrebbe essere la stampa dei valori delle variabili in console. Nel suo caso c'è solo una variabile - elem. È necessario stampare il valore di questa variabile e guardare cosa contiene:

let elem = document.querySelectorAll('p'); console.log(elem); // stamperà un array, non un singolo elemento

In console si vede immediatamente che nella variabile non c'è un singolo elemento, ma un array. Questo fornisce immediatamente un indizio ovvio sul fatto che è stato commesso un errore nel metodo per recuperare l'elemento.

idsvuzhyhu