Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2011, 03:50
Krlinhos_
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 9 meses
Puntos: 0
añadir y eliminar elementos de un conjunto

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);
            }
        }   
    }