[Jquery-Es] Filtrado de elementos y sus complementarios

stripTM fer en striptm.com
Sab Jun 7 11:27:03 PDT 2008


Choan Gálvez escribió:
>
> No hasta donde yo sé. Pero siempre puedes montártelo al gusto.
>
> En este caso, lo suyo sería realizar una sola iteración en el filtrado 
> y aplicación del callback, ¿no?
>
> Se me ocurre pues que podrías escribir la cosa como
>
>     $('ul li')
>       .each(function() {
>         var $el = $(this);
>         if ($el.is('.maldito'))
>           $el.unaCosa();
>         else
>           $el.otraCosa()
>       });
>
> Y si quieres idiomatizarlo/pluginizarlo, la cosa podría quedar en algo 
> así:
>
>     $.fn.split = function(selector, fn1, fn2) {
>       return this.each(function() {
>         if ($(this).is(selector))
>           fn1.call(this);
>         else
>           fn2.call(this);
>       });
>     };
>
> Y el uso:
>
>     $('ul li')
>       .split(
>         '.maldito',
>         function() { $(this).unaCosa(); },
>         function() { $(this).otraCosa(); }
>       );
>

Esto si que es lo que buscaba :-)

> Ahora, ni idea de cómo resultará esto en eficiencia.
>

Efectivamente habría que ver que es mejor si hacer una doble busqueda o 
interrogar a cada elemento, supongo que dependerá mucho del tipo de 
'filtro' que se utilice.
Gracias.
> (Me está viniendo a la cabeza que en los primeros tiempos de jQuery 
> alguien hizo un plugin jif/jelse con un objetivo similar).





-- 
Saludos -=stripTM=-



Más información sobre la lista de distribución Jquery-Es