Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/09/2014, 14:27
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Obtener todos los campos ocultos

Una básica y sencilla forma de hacerlo es tomar a todos los elementos del documento HTML, utilizar un bucle para iterar sobre dicho conjunto y, en cada iteración, verificar que el elemento actual en la iteración o el elemento que lo contiene no sea visible. De ser así, bien puedes contarlo o asignarlo a un array.

Código Javascript:
Ver original
  1. var elementos = document.getElementsByTagName("*"),
  2.     total = elementos.length,
  3.     invisibles = [];
  4.  
  5. for (var i = 0; i < total; i++){
  6.     var actual = elementos[i],
  7.         padre = elementos[i].parentNode;
  8.  
  9.     //Para compatibilidad con versiones anteriores a IE9
  10.     if (window.getComputedStyle){
  11.         if (getComputedStyle(actual).display == "none" || getComputedStyle(padre).display == "none"){
  12.             invisibles.push(elementos[i]);
  13.         }
  14.     }
  15.     else{
  16.         if (actual.currentStyle.display == "none" || padre.currentStyle.display == "none"){
  17.             invisibles.push(elementos[i]);
  18.         }
  19.     }
  20. }

De este modo, el array invisibles contendrá a todos los elementos que no sean visibles en el documento. El valor de la propiedad display lo obtengo con el método getComputedStyle o con currentStyle en caso de que el navegador fuera IE8 o una versión anterior.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand