Obtener elementos DOM insertados por jQuery sin volver a solicitar el elemento después de la inserción

Suponiendo que inserto algo en mi DOM con jQuery, al igual que:

$('#someselector').prepend('<img src="/img/myimage.gif" id="someid" />');

¿Hay alguna forma en jQuery de obtener un jQuery objeto que hace referencia a esta nueva imagen, sin tener que hacer una búsqueda adicional como

var myImage = $('#someselector #someid');

?

preguntado el 10 de mayo de 11 a las 12:05

3 Respuestas

Puedes probar algo como esto:

$('#someselector')
    .prepend('<img src="/img/myimage.gif" id="someid" />')
    .find('#someid');

O si solo hay una imagen:

$('#someselector')
    .prepend('<img src="/img/myimage.gif" id="someid" />')
    .find('img');

Alternativamente:

$('<img src="/img/myimage.gif" id="someid" />').prependTo('#someselector')

contestado el 10 de mayo de 11 a las 17:05

Sí, ese último es perfecto. ¡Gracias! - Sorcy

Conviértelo en un objeto jQuery antes anteponiéndolo:

var $img = $('<img src="/img/myimage.gif" id="someid" />');    
$('#someselector').prepend($img);    
$img.foo();

contestado el 10 de mayo de 11 a las 16:05

Esa es una buena solución, pero me gusta más la solución de una línea de qwertymk. - Sorcy

Solución sin crear un objeto jQuery antes y sin tener una identificación:

var $img = $('#someselector')
            .prepend('<img src="/img/myimage.gif" />')
            .find(':first');    

Respondido 03 Oct 13, 08:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.