hola Tunait y Caricatos:
Cita:
Iniciado por tunait tal vez podrías repasarlos y verificar si su parentNode.tagName.toLowerCase() == 'body'
El problema es que un DIV que no es descendiente de otro DIV tampoco sea nodo hijo de BODY. De todoas formas tu respuesta me iluminó y llegué a una solución (no sé si la más óptima, pero me sirvió) que detallo a continuación.
Código:
// Capturo todos los DIVs del documento
lista = document.getElementsByTagName('DIV');
// Recorro el contenido de la lista mediante un bucle.
for(i=0; i<lista.length; i++){
/*
De manera recursiva voy recorriendo los "nodos ancestros" (ni idea
cual será el nombre técnico) de cada elemento de la lista, hasta
llegar a un DIV o aun BODY (que será mi tope).
*/
nodoPadre = lista[i].parentNode;
if(nodoPadre.nodeName != 'DIV' && nodoPadre.nodeName != 'BODY')
nodoPadre = nodoPadre.parentnode;
/*
Si el valor final de "nodoPadre" es "BODY" significa que el elemento
de la lista no es descendiente de un DIV, y por lo tanto, me sirve
*/
if(nodoPadre.nodeName == 'BODY')
alert('Este DIV me sirve');
}