/ / Cuando document.getElementByID se usa sin un ID, ¿qué está haciendo? - javascript, dom, getelementbyid

Cuando se usa document.getElementByID sin una ID, ¿qué está haciendo? - javascript, dom, getelementbyid

Tengo un código que estoy viendo que usa una variación de getElementByID que no entiendo. He buscado en línea pero no encuentro nada que explique esto.

Entiendo cómo usar algo como document.getElementByID ("bob"), sin embargo, lo que estoy viendo dice:

if (document.getElementByID){}

Cuando usa getElementByID de esta manera, ¿qué está haciendo?

Respuestas

3 para la respuesta № 1

document.getElementById devuelve la función que se puede usar para obtener algún elemento por ID.

typeof document.getElementById; // "function"

Sin embargo, si algún navegador no se implementó getElementByIdobtendrías undefined.

Por lo tanto, esto es solo una prueba para garantizar que el método existe antes de llamarlo, evitando un error.

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 para la respuesta № 2

Esto volverá false:

if (document.getElementByID){}

porque no hay getElementByID sobre el document objeto. Sin embargo, hay getElementById (observe la diferencia en el d al final).

Por lo tanto, esto volverá true

if (document.getElementById){}

En resumen, si getElementByID existe en el documento, que debido a la escritura, no existe, pero si lo hizo, entonces hace algo.

Un ejemplo más completo con la ortografía correcta:

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

document.getElementById devuelve una función que se evalúa como true cuando en una expresión Puede probar esto usted mismo pero ejecutando el fragmento de código.

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