2011-09-20 14 views
13

Duplicar posibles:
document.getElementById(“someId”) Vs. someId¿Cuál es la diferencia entre document.getElementById ('mybox') y mybox?

Por ejemplo, tengo un elemento con id="mybox" atributo, ¿hay alguna diferencia entre llamar con document.getElementById('mybox') y mybox directamente, como lo veo tanto el trabajo mismo en la mayoría de los navegadores? La muestra jsFiddle ejemplo vivohttp://jsfiddle.net/usmanhalalit/TmS3k/

Si no hay ninguna diferencia, entonces por qué document.getElementById('mybox') es tan popular, es una mala práctica de llamar directamente mybox?

+0

Véase también [son las variables globales de los elementos del árbol DOM aquí?] (Http://stackoverflow.com/q/3434278/1048572) – Bergi

Respuesta

21

Algunos navegadores en algunos modos de renderizado crearán una variable global para cada elemento con un id.

No es estándar, no funcionará en todas partes y definitivamente no se puede depender de él.

+0

Buena respuesta, gracias :) – Usman

6

No "funcionan igual". IE introdujo la creación de identificadores de elementos en variables globales, otros navegadores lo copiaron hasta cierto punto, pero no lo admiten por completo. Se considera una muy mala idea, simplemente no lo hagas.

+0

+1 gracias, pero tengo que elegir solo una respuesta . – Usman

4

mybox.value no funciona en la mayoría de los casos. Creo que IE es el único navegador (y solo algunas versiones) que lo soportaría. En mi navegador Firefox, aparece el mensaje de error mybox not defined en la consola.

+0

+1 gracias, pero tengo que elegir solo una respuesta. – Usman

Cuestiones relacionadas