Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2012, 09:47
Lanix_0
 
Fecha de Ingreso: noviembre-2010
Mensajes: 95
Antigüedad: 14 años
Puntos: 5
Problema con filtros

Hola foreros tengo hoy esta duda con jquery,

Miren este código lo que pretende es ocultar aquellas filas que en la columna N no contengan un valor especifico, para ser más claro quiero hacer filtros en una tabla y este es la función que lo hace

Donde ind es la variable de índice de la colimna y o es el objeto que contiene el valor a buscar o mejor dicho filtrar.

Código Javascript:
Ver original
  1. $.filterUp = function(ind,o){
  2.     var a = $('#content_table > table tr:gt(0):not(.optionfilter)'),
  3.     b = o.html(),
  4.     c = a.length,
  5.     d = '';
  6.     if(b=='...'){
  7.         $('#content_table > table tr').removeClass('optionfilter')
  8.         $('#toolbar-left').positionToolBar();
  9.         return false;
  10.     }
  11.    
  12.     for(i=1;i<=$('#content_table > table tr:gt(0)').length;i++){
  13.         d = $('#content_table > table tr:eq('+i+') > td:eq('+ind+')').html();
  14.         if(d!=b){
  15.             $('#content_table > table tr:eq('+i+')').addClass('optionfilter');
  16.         }
  17.     }
  18.     $('#toolbar-left').positionToolBar();
  19. };

Bueno si hace el procesos y si filtra pero hay un problema que alenta mucho la maquina puesto que hay un ciclo for, que si hay 1500 registros va a cada registro a hacer la comparación.

Entonces lo que eh trato de hacer es con los selectores de jquery pero aun asi no me queda y es la ayuda que ando buscando, como puedo hacer mas rápido el filtrado si tuviese +1000 de registros.

creo que el selector deberia de ser algo asi

Código Javascript:
Ver original
  1. $('#content_table > table tr:gt(0):not(\':contains("'+b+'")\')').addClass('optionfilter');

gracias