[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