Skip to content

Instantly share code, notes, and snippets.

@lupomontero
Created March 29, 2017 01:58
Show Gist options
  • Save lupomontero/17910c7c9e897b994b3c793493773855 to your computer and use it in GitHub Desktop.
Save lupomontero/17910c7c9e897b994b3c793493773855 to your computer and use it in GitHub Desktop.
Selecciona elementos del DOM

Selecciona elementos del DOM

En el entorno del navegador, implementa una función que dado un elemento del DOM y una función pasados como argumentos (el y condition), retorne un arreglo con todos los elementos encontrados que cumplan la condición. La función deberá recorrer el DOM empezando en el elemento pasado (el) e invocar la función pasada (condition) para cada elemento. Si condition retorna true el elemento debe ser incluido en el resultado.

array select( HTMLElement el, function condition )

Ejemplo:

var selection = select(document.body, function (el) {

  return el.tagName === 'H2';
});

console.log(selection); // `selection` es un array con todos los `h2` encontrados.

Input/Argumentos:

  • el: referencia a un elemento del DOM
  • condition: una función que será invocada para cada elemento mientras recorremos el DOM. Recibirá un argumento, el elemento a chequear. Debe retornar true si queremos que el elemento se incluya en el resultado o false para ignorarlo.

Return:

Un arreglo con referencias a los elementos que cumplen la condición.

'use strict';
function select(element, condition) {
var resultado = [];
if (condition(element)) {
resultado.push(element);
}
for (var i = 0; i < element.children.length; i++) {
resultado = resultado.concat(select(element.children[i], condition));
}
return resultado;
}
var selection = select(document.body, function (el) {
return el.tagName === 'H2';
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment