[jQuery-es] Fwd: ¿Fallo mío?

Juan G.Hurtado juan.g.hurtado en gmail.com
Vie Ene 5 00:50:37 PST 2007


Buenas,

>
> Buenas,
>
> Tengo un pequeño HTML añadido al documento mediante .append(), tal  
> que así:
>
> $('#identificador elemento').append('<p>Lorem ipsum <img  
> src="imagen.png" alt="Prueba" /></p>');
>
> Quiero añadir otra vez lo mismo, para tener 2 párrafos iguales,  
> salvo que al primero de ellos quiero cambiarle la imagen por otra.  
> Así que después de añadir el nuevo párrafo, (mediante un evento  
> click de la imagen del primer párrafo), hago lo siguiente:
>
> $(this).ancestors('elemento').find('p:not(:last) img').remove();
> $(this).ancestors('elemento').find('p:not(:last)').append('<img  
> src="imagen2.png" alt="Otra imagen" />');
>
> El caso es que no hace el .append() de la nueva imagen, aunque sí  
> hace el remove(). Si borro la línea que hace el remove(), sí hace  
> el append().
>
> ¿El fallo es de concepto, o es un fallo "superior"?
>
> Gracias por todo, un saludo.

Ya he visto el fallo. El .remove() se está cargando la imagen que  
genera el evento click, por lo tanto, después del remove(), cualquier  
investigación del DOM que yo haga a partir de ese objeto será inútil,  
ya que no existe en el DOM. Es decir:

$(this).ancestors('elemento')

Si hago eso después del .delete() no funciona, ya que 'this' se  
refiere a la imagen, que ya no está en el DOM, y por lo tanto no  
tiene 'ancestors'.

Un saludo, y recordad no cometer mis mismos errores ;)

--
Juan G. Hurtado
[ juan.g.hurtado en gmail.com ]
[ http://armonia.spiral-static.org/ ]





Más información sobre la lista de distribución jquery-es