Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/11/2009, 09:43
kbmaster
 
Fecha de Ingreso: julio-2009
Mensajes: 42
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: ParentNode en array

Creo que tus problemas podrian set los siguientes
1- no estas estableciendo una condicion de corte para tu padre, recuerda que el padre del div 'hola' es el body y luego vas a pasar a preguntar por el padre del body y asi sucesivamente, creo q esta es la causa de tu ciclo infinito...
2- la propagacion de eventos si no detienes la propagacion el evento que ejecutes sobre el div mas profundo se propagara hacia arriba de esta forma tu funcion se ejecutara 3 veces consecutivas; la primera para los divs yo_soy adios y hola, la siguienete para adios y hola y la ultima para yo soy.

te dejo un codigo que sifunciona y creo q hace exactamente lo que buscas...

var form_focus=function(evt)
{
evt.stopPropagation(); //aca detengo la propagacion del evento

var array = [];
elem=this;

//el ciclo solo va para los divs

while(elem && elem.nodeName=='DIV')
{
alert(elem.className);
array.push(elem.className);
elem=elem.parentNode;

}
}



con este codigo asigno al evento onclick de cada div la funcion form_focus

<script>
var elms=document.getElementsByTagName("div");
for (i in elms)
{
alert(elms[i].nodeName);
if(elms[i].nodeName=='DIV')elms[i].onclick=form_focus;
}
</script>