[Jquery-Es] Consulta sobre metodo .end()
David Arango
arango en gmail.com
Jue Sep 27 12:40:10 PDT 2007
On 9/27/07, Choan Gálvez <choan.galvez en gmail.com> wrote:
> > $(this).parents('dd').prev('dt').hide().end().end().parents
> > ('dd').hide()
>
> ¿Veo raro o estás buscando dos veces lo mismo?
¡Cierto! No lo hagan en sus casas niños.
> Lo de destructivas suena un poquito bestia y se entiende poco. Yo les
> llamaría operaciones de búsqueda. O de refinamiento. O algo.
A mí lo de "destructivo" y "destrozar" siempre me ha sonado guay, pero
ahora que lo dices yo lo comprendí con tu metáfora del saco en el que
vas metiendo cosas, me explico algo mejor, empezamos por este
selector:
$('ul#frutas li a')
Selecciono todos los enlaces que estén dentro de elementos li que a su
vez estén dentro del elemento ul que tiene id "frutas". Es decir, si
tomamos la función $ como un saco de elementos, estoy metiendo dentro
de ese saco todos los elementos que cumplan esa descripción.
$('ul#frutas li a').parent()
Con esto lo que hago es sacar del saco lo que había antes (los
enlaces) y meter el padre de esos enlaces, es decir, los elementos li.
$('ul#frutas li a').parent().end()
Con esto vuelvo a meter los enlaces dentro, a eso me refiero con
"deshacer la última operación destructiva.
Y no lo había pensado mucho pero... ¿no se puede reescribir cualquier
one-liner en el que utilices end() si aplicas las operaciones antes de
cambiar el set de elementos? Por ejemplo en mi caso:
// Esto:
$(this).parents('dd').prev('dt').hide().end().end().parents('dd').hide();
// Versus esto:
$(this).parents('dd').hide().prev('dt').hide();
Sorry por el tocho, espero que le sirva a alguien.
--
David Arango, el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman
Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo
Cuando no hago otra cosa escribo en mildiez.net
Más información sobre la lista de distribución Jquery-Es