Foros del Web » Programando para Internet » Javascript »

Recorrer DOM en busca de tags

Estas en el tema de Recorrer DOM en busca de tags en el foro de Javascript en Foros del Web. Aupa, me gustaría saber si tenéis algún código para comprobar que un elemento tiene 'hijos' con tag en concreto. Muchas gracias /eskerrik asko....
  #1 (permalink)  
Antiguo 29/09/2009, 06:18
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Recorrer DOM en busca de tags

Aupa, me gustaría saber si tenéis algún código para comprobar que un elemento tiene 'hijos' con tag en concreto.

Muchas gracias /eskerrik asko.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #2 (permalink)  
Antiguo 29/09/2009, 06:57
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Recorrer DOM en busca de tags

el estandar DOM define lo que se llama un walker o traverser, es a manera de una funcion para recorrer por los elementos que utiliza un filtro definido por ti. la verdad nunca me he interesado mucho por el, o sea, lo unico que se es la teoria.

ahora bien, hacen justamente casi dos dias que modifique un codigo que escribi que me parece similar a ese principio. aunque te sea util quizas te sea compleja entenderla, no se...
Código:
var walk = function(filter){
var array = [];
	for(var node = this.firstChild; node; node = node.nextSibling){
	if(!filter)array.push(node);
	else if(filter(node))array.push(node);
	if(node.firstChild)array = array.concat(arguments.callee.call(node, filter));
	}
return array;
};
sinopsis:
Cita:
walk.call(element node [, function filter]);

node, un elemento del documento. desde ese elemento la funcion va a recorrer por sus hijos

filter, una funcion opcinal que recibe como argumento el elemento actual que esta recorriendo. la funcion debe devolver true o false segun el analisis que se haga con este. si devuelve true, el nodo es agregado a la coleccion. si el filtro no se provee, entonces walk devuelve todos los nodos, incluyendo nodos anidados, que son hijos del elemento a recorrer.
un ejemplo de uso:
Código:
var collection = walk.call(document.body, function(elem){
if(/^a$/i.test(elem.nodeName) && /menu/.test(elem.className))return true;
})
en este ejemplo, walk recorre el elemento <body> en busca de elementos anclas (<a>) con la clase "menu".
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 04/10/2009 a las 17:27 Razón: correccion de termino
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 09:44.