document.getElementById('id of div that definately exists')
restituisce null.
Inizialmente avevo caricato il javascript per assicurarmi che non avrei dovuto preoccuparmi dell’evento onload. Ho anche provato a utilizzare l’evento onload. È molto spettrale. Qualsiasi idea o aiuto sarebbe molto apprezzato.
Può essere causato da:
Per favore, pubblica il tuo codice.
Fai anche attenzione a come esegui il js sulla pagina. Ad esempio se fai qualcosa del genere:
(function(window, document, undefined){ var foo = document.getElementById("foo"); console.log(foo); })(window, document, undefined);
Questo restituirà null perché avresti chiamato il documento prima che fosse caricato.
Migliore opzione ..
(function(window, document, undefined){ // code that should be taken care of right away window.onload = init; function init(){ // the code to be called when the dom has loaded // #document has its nodes } })(window, document, undefined);
Ci possono essere molte ragioni per cui document.getElementById
non funziona
Hai un ID non valido
I token ID e NAME devono iniziare con una lettera ([A-Za-z]) e possono essere seguiti da qualsiasi numero di lettere, cifre ([0-9]), trattini (“-“), trattini bassi (“_”) , due punti (“:”) e punti (“.”). (risorsa: quali sono i valori validi per l’attributo id in HTML? )
hai usato qualche id che hai già usato come nome nel tuo header (es. copyright, author …) sembra strano ma mi è successo: se stai usando IE dai uno sguardo a (risorsa: http: // http://www.phpied.com/getelementbyid-description-in-ie/ )
stai bersagliando un elemento all’interno di un frame o iframe. In questo caso, se l’iframe carica una pagina all’interno dello stesso dominio del genitore, è necessario indirizzare il contentdocument
prima di cercare l’elemento (risorsa: chiamata di un ID specifico all’interno di un frame )
stai semplicemente osservando un elemento quando il nodo non è effettivamente caricato nel DOM, o forse è un semplice errore di ortografia
Dubito che tu abbia usato lo stesso ID due o più: in questo caso document.getElementById
dovrebbe restituire almeno il primo elemento