Hola,
estoy haciendo unos filtros para una tabla con registros. El problema es que cuando quiero usar el metodo
.not(element) para sacar el elemento del conjunto de todas las filas de la tabla me da error. He comprobado que donde quiero aplicar la funcion
.not() es un conjunto y si lo es. Nose... a ver si alguien me puede ayudar.
Dejo aqui el código.
Código:
function filtrarFilas(r, valores, filtro){
var filtradas = r;
switch(filtro){
case "filtroZona":
colum = 1;
break;
case "filtroFisio":
colum = 2;
break;
case "filtroMes":
colum = 3;
break;
case "filtroAnyo":
colum = 4;
break;
case "filtroEspecie":
colum = 6;
break;
case "filtroSexo":
colum = 7;
break;
}
for (j=0; txt=valores[j]; j++){
valor = txt.value;
for (i=0; fila=r[i]; i++) {
texto = fila.getElementsByTagName('td')[colum].innerHTML.toUpperCase();
selec = (texto.indexOf(valor.toUpperCase())!=-1);
if(!selec){
filtradas.not(fila);
}
}
}
return filtradas;
}
function filtrarTabla(){
t = document.getElementById('registros');
filas = t.tBodies[0].getElementsByTagName('tr');
fz = $("#filtroZona input:checked");
ff = $("#filtroFisio input:checked");
fm = $("#filtroMes input:checked");
fa = $("#filtroAnyo input:checked");
fe = $("#filtroEspecies input:checked");
fs = $("#filtroSexo input:checked");
filas = filtrarFilas(filas,fz,"filtroZona");
filas = filtrarFilas(filas,ff,"filtroFisio");
filas = filtrarFilas(filas,fm,"filtroMes");
filas = filtrarFilas(filas,fa,"filtroAnyo");
filas = filtrarFilas(filas,fe,"filtroEspecies");
filas = filtrarFilas(filas,fs,"filtroSexo");
}
Una mejor manera que se me ocurria era ir creando un conjunto nuevo con las filas filtradas, en vez de quitarlas a un conjunto ya existente pero tampoco podia.
Código:
var FILTRADAS; //vaiable global declarada fuera de la funcion.
function filtrarFilas(){
for (j=0; txt=valores[j]; j++){
valor = txt.value;
for (i=0; fila=r[i]; i++) {
texto = fila.getElementsByTagName('td')[colum].innerHTML.toUpperCase();
selec = (texto.indexOf(valor.toUpperCase())!=-1);
if(selec){
FILTRADAS.add(fila);
}
}
}