Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/09/2009, 06:57
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 10 meses
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