/ / Quando document.getElementByID viene utilizzato senza un ID cosa sta facendo? - javascript, dom, getelementbyid

Quando document.getElementByID viene utilizzato senza ID, che cosa sta facendo? - javascript, dom, getelementbyid

Ho del codice che sto guardando che utilizza una variazione su getElementByID che non capisco. Ho cercato online ma non trovo nulla che spieghi questo.

Capisco come usare qualcosa come document.getElementByID ("bob"), tuttavia quello che sto guardando dice:

if (document.getElementByID){}

Quando usi getElementByID in questo modo, cosa fa?

risposte:

3 per risposta № 1

document.getElementById restituisce la funzione che può essere utilizzata per ottenere alcuni elementi tramite ID.

typeof document.getElementById; // "function"

Tuttavia, se alcuni browser non lo implementano getElementById, otterresti undefined.

Pertanto, questo è solo un test per assicurarsi che il metodo esista prima di chiamarlo, evitando un errore.

if(document.getElementById) {
// Hopefully it"s safe to call it
document.getElementById("bob");
// ...
} else {
alert("What kind of stupid browser are you using? Install a proper one");
}

1 per risposta № 2

Questo tornerà false:

if (document.getElementByID){}

perché non c'è getElementByID sul document oggetto. C'è tuttavia, getElementById (nota la differenza nel file d alla fine).

Pertanto, questo tornerà true

if (document.getElementById){}

In breve, se getElementByID esiste sul documento, che a causa della digitazione, non lo fa, ma se lo ha fatto, allora fa qualcosa.

Un esempio più completo usando l'ortografia corretta:

if (document.getElementById) {
// it is safe to use this method because it exists on document
var element = document.getElementById("foo");
}

document.getElementById restituisce una funzione che restituisce true quando in un'espressione. Puoi testarlo tu stesso ma eseguendo lo snippet di codice.

console.log(document.getElementById);
// The !! forces a boolean
console.log(!!document.getElementById);