[jQuery-es] $(this)
Choan C. Gálvez
choan.galvez en gmail.com
Vie Ene 26 06:25:23 PST 2007
On 1/26/07, David Arango <arango en gmail.com> wrote:
> On 1/26/07, Mateo Montoto <mmontoto en gmail.com> wrote:
> > y lo que hacia antes con .appendChild y innerHTML, estuve probando para
> > añadir un nuevo div al final del body para luego moverlo con css algo como
> > esto pero no me funciona(html es unas lineas de html ):
> >
> > $('body').append('div').addClass('adjunta').html(html);
>
> No vas muy desencaminao, el problema es que addClass() y html() están
> aplicándose a body, no al div que has añadido, como tú esperabas:
>
> $('body').append('<div id="adjunta"></div>').find('div#palomitas').html(html);
>
> // aunque todo eso es si no quieres hacer simplemente:
>
> $('body').append(['<div id="adjunta">', html, '</div>'].join(''));
Cielos, cómo me gusta esa línea :)
> He supuesto que sólo vas a tener un div.adjunta, por lo que tiene más
> sentido ponerle un id. No se si hay una forma mejor de hacerlo, a ver
> si uno de los monstruos que andan por ahí nos echan un cable :-)
Pues yo que soy el más feo, os propongo hacerlo un poco al revés:
$( [ '<div class="adjunta">', html, '</div>' ].join('') )
.appendTo(document.body);
Dos notitas:
* Si la función `$` recibe una cadena sospechosa de ser HTML (esto es,
empieza por un angle brackett) crea el elemento correspondiente al
vuelo y lo usa como único miembro de la colección resultante.
* jQuery.appendTo(expresión) añade los elementos de la colección
_jQuery_ a cada uno de los elementos de la colección resultante de
realizar una selección usando _expresión_.
Haciéndolo todo al estilo jQuery (ineficiente en este caso), podemos
escribir esto:
$("<div></div>").addClass("adjunta").html(html).appendTo(document.body);
Para rematar, prefiero usar `document.body` como _generador_ de la colección.
Salud.
PS: Si no se entiende ni papa, avisadme y dejo de fumar. Y le meto una
paliza a Manu, por provocador XD
--
Choan
<http://choangalvez.nom.es/>
Más información sobre la lista de distribución jquery-es