Esta pregunta me ha molestado durante mucho tiempo. Lo siento si es una pregunta estúpida.No getElementById para el cuerpo?
Antes, he sabido que se puede obtener los elementos con un nombre de clase
document.body.getElementsByClassName("foo");
y yo estaba tan flojo, por lo que sólo copiar y pegar el código de la otra parte para hacer esto
document.body.getElementById("bar");
Accidentalmente encontré que no funcionará. Probé y dice
TypeError: Object #<HTMLBodyElement> has no method 'getElementById'
Entonces, ¿por qué tiene getElementsByClassName
y getElementsByTagName
y todos esos métodos similares, pero sólo hay getElementById
?
typeof document === typeof document.body //true
Sus tipos son los mismos, por lo que deberían tener la misma función. Pero no parece ser el caso aquí.
'typeof' es' "object" 'para ambos, lo que significa que pueden ser * cualquier * tipo de objeto. No dice mucho sobre los métodos que tienen. – pimvdb
"Sus tipos son los mismos, por lo que deberían tener la misma cosa". No. Ambos son objetos, pero no todos los objetos comparten las mismas propiedades/métodos. – Artefact2
Recomendación, nunca revise los tipos en javascript para ver si las cosas son iguales, repita las propiedades y compruébelas. Porque 'typeof document === typeof document.body === typeof null === typeof [] ===" object "' – NicoSantangelo