Foros del Web » Programando para Internet » Javascript »

añadir y eliminar elementos de un conjunto

Estas en el tema de añadir y eliminar elementos de un conjunto en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/06/2011, 03:50
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 14 años
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);
            }
        }   
    }
  #2 (permalink)  
Antiguo 20/06/2011, 11:29
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: añadir y eliminar elementos de un conjunto

Lo que ocurre es que en la primera llamada a filtrarFilas le pasas como parámetro un Node a pelo, no un objeto jQuery, por lo que no tiene el método not. Creo que tienes que cambiar el órden de los paámetro.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 20/06/2011, 11:36
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 14 años
Puntos: 0
Respuesta: añadir y eliminar elementos de un conjunto

Um me podrias explicar un poquito eso? es que no lo entendi muy bien. No se que diferencia hay entre el nodo y el objeto.

Gracias.
  #4 (permalink)  
Antiguo 20/06/2011, 12:41
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: añadir y eliminar elementos de un conjunto

No es lo mismo:
Código:
document.getElementsByTagName('div');
que
Código:
$('div');
¿Por qué? Porque lo primero devuelve un NodeList, es decir una lista de nodos, algo parecido a un array. Sin embargo, jQuery usa un wrapper, y le va añadiendo los métodos a cada elemento. No quisiera equivocarme, pero a grandes rasgos es algo así:
Código:
$('div').fadeIn();

1.- Se seleccionan todos los div del documento con el selector de Dojo
2.- Se almacenan y se extienden uno a uno seteando los métodos
3.- Se devuelve la lista de divs
4.- Se usa fadeIn usando apply pasándole la colección de divs
Con todo esto quiero decirte que para poder usar los métodos de jQuery (como not) debes seleccionar los elementos con $ (o jQuery).
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 20/06/2011, 12:44
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 14 años
Puntos: 0
Respuesta: añadir y eliminar elementos de un conjunto

Ok! muchas gracias! vere entonces como coger los elementos usando jquery :)

Etiquetas: conjunto, elementos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:18.