Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] getElementsByTagName y su comportamiento

Estas en el tema de getElementsByTagName y su comportamiento en el foro de Javascript en Foros del Web. Buenas, les paso este fiddle .. Hace poco volvi a programar en JS, hace mucho que no programo, pero si mal no recuerdo... un simple ...
  #1 (permalink)  
Antiguo 09/03/2016, 21:55
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 2 meses
Puntos: 19
getElementsByTagName y su comportamiento

Buenas, les paso este fiddle..

Hace poco volvi a programar en JS, hace mucho que no programo, pero si mal no recuerdo... un simple document.body.getElementsByTagName("div") deberia devolver un HTMLCollection con los Node que encontro y enumerados(ej: {0: ..., 1: ..., etc}).

Ahora bien, en la consola(al menos en las mias..), devuelve esto..
Cita:
Console was cleared
[div, div#div_id, div.div_class, div_id: div#div_id]
<div id=​"div_id">​div_id​</div>​
De donde sale la propiedad "div_id"....???

Alguien me podria explicar porque sucede esto? Si mal no recuerdo, no sucedia antes(hace como 5 años atras)... o al menos YO nunca me percate de ello.

Saludos y gracias.
  #2 (permalink)  
Antiguo 11/03/2016, 14:31
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 2 meses
Puntos: 19
Respuesta: getElementsByTagName y su comportamiento

nadiep? :/
  #3 (permalink)  
Antiguo 12/03/2016, 09:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: getElementsByTagName y su comportamiento

Creo que esto se debe a que el navegador crea una variable global a partir del identificador del elemento; es por eso que se puede acceder directamente al elemento mediante dicho valor:
Código HTML:
Ver original
  1. <div id="foo"></div>
Código Javascript:
Ver original
  1. foo.innerHTML = "Foo";
Lo anterior establecerá la cadena "Foo" como contenido del elemento.

Incluso si hacemos lo siguiente:
Código Javascript:
Ver original
  1. {}.toString.call(foo);
Obtendremos por resultado [object HTMLDivElement], lo cual podría explicar lo ocurrido.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 12/03/2016, 13:18
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 2 meses
Puntos: 19
Respuesta: getElementsByTagName y su comportamiento

wow, no se que es mas incoherente, que se creen HTMLElements por cuenta propia, o que los introduzca en el HTMLCollection...

Creo que deberian hacer algo con esto, pero bueno.

Gracias por responder!
  #5 (permalink)  
Antiguo 12/03/2016, 14:17
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: getElementsByTagName y su comportamiento

Cita:
Iniciado por Alexis88 Ver Mensaje
Creo que esto se debe a que el navegador crea una variable global a partir del identificador del elemento; es por eso que se puede acceder directamente al elemento mediante dicho valor:
Exacto http://www.forosdelweb.com/f13/chrom...3/#post3974853
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 15/03/2016, 01:54
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 2 meses
Puntos: 19
Respuesta: getElementsByTagName y su comportamiento

Cita:
What is supposed to happen is that ‘named elements’ are added as apparent properties of the document object. This is a really bad idea, as it allows element names to clash with real properties of document
No solo eso, por cada HTMLElement con ID en mi markup, se crea una variable, hay sitios(donde no saben simplificar el HTML, y por malas constumbres tendrian como 50 variables que salieron de la nada. :s

Etiquetas: comportamiento, html, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:33.