if (document.getElementById("prova")==undefined)
alert ("no");
Queste due righe di codice (riprese bellamente da uno dei tanti esempi
in rete) mi servono per controllare se esiste già un elemento, prima di
approfondire l'esercizio (cioè, in caso negativo, creare tale elemento).
Eseguite dalla console di Firebug, nel pannello di sinistra fanno
comparire la dicitura "undefined".
Ecco, io vorrei sapere se è un messaggio informativo del tutto "normale"
oppure se sto facendo la cosa sbagliata e devo verificare l'esistenza
dell'elemento in un altro modo che non produca nessuna dicitura.
Scusate la domanda che forse vi apparirà idiota, ma il dubbio mi assilla.
Grazie anticipate.
> if (document.getElementById("prova")==undefined) alert ("no");
non restituisce undefined se non trova l'elemento con l'id indicato.
Leggi la documentazione, è ben scritto cosa restituisce:
https://developer.mozilla.org/en/DOM/document.getElementByID
Perdinci, è vero! Ora non ricordo più quale pagina avevo letto, ma ho
capito che devo considerare il sito di mozilla come la bibbia!
Comunque, ripetendo il mio esempio con null,
if (document.getElementById("prova")==null)
alert ("no");
ottengo lo stesso "undefined" nel pannello di sinistra della Console di
Firebug. Cosa significa? Me ne devo preoccupare? Ancora grazie!
> Perdinci, è vero! Ora non ricordo più quale pagina avevo letto, ma ho
> capito che devo considerare il sito di mozilla come la bibbia!
yes! :-)
> Comunque, ripetendo il mio esempio con null,
> if (document.getElementById("prova")==null) alert ("no");
> ottengo lo stesso "undefined" nel pannello di sinistra della Console di
> Firebug. Cosa significa? Me ne devo preoccupare? Ancora grazie!
non uso firebug se non per gestione errori, quindi non so dirti. Ti devi
preoccupare se, messo nel codice, ti restituisce "undefined": fosse null
avresti 2 possibilità:
a) non esiste un elemento con id="prova"
b) ne esiste più di uno
ma "undefined", riferito a una function (esistente o meno), non saprei
dire come possa succedere (ripeto: nel codice ...). A naso farei un bel
format ... :-)
Senza saperne nulla, se funziona come le normali "finestre immediate",
quello che dovresti scrivere è ?document.getElementById("prova") , e
vedere come risultato "null" o "object window".
Puoi fare la stessa cosa direttamente dalla riga dell'URL del browser,
del tipo:
javascript:if(document.getElementById("prova")==null) alert("ok");
>> if (document.getElementById("prova")==undefined) alert ("no");
> non restituisce undefined se non trova l'elemento con l'id indicato.
Vero, ma giusto per dover di cronaca quel codice è del tutto valido,
dato che usando l'operatore di uguaglianza con undefined viene
verificato anche che il valore sia null:
null == undefined // true
diverso sarebbe stato se avess fatto:
null === undefined // false
> Leggi la documentazione, è ben scritto cosa restituisce:
> https://developer.mozilla.org/en/DOM/document.getElementByID
E a proposito di documentazione:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined
--
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."
> Un dubbio che mi ᅵ sorto facendo qualche elementare esercizio in Firebug:
>
> if (document.getElementById("prova")==undefined)
> alert ("no");
Puoi semplificare in:
if (!document.getElementById("prova"))
alert("no");
> Eseguite dalla console di Firebug, nel pannello di sinistra fanno
> comparire la dicitura "undefined".
ᅵ normale, perchᅵ le console (firebug, safari, chrome) visualizzano
sempre il valore di ritorno dell'ultimo statement. Dato che alert non ha
alcun valore di ritorno, viene appunto visualizzato "undefined".
Se tu facessi:
if (!document.getElementById("prova"))
alert("no") || 2;
Firebug dovrebbe visualizzarti "2" dopo l'alert, invece che undefined.
> Ecco, io vorrei sapere se ᅵ un messaggio informativo del tutto "normale"
Sisi, perfettamente normale.
> Scusate la domanda che forse vi apparirᅵ idiota, ma il dubbio mi assilla.
Tranquillo, il NG ᅵ qui per questo. :)
> Grazie anticipate.
Prego!