2012-02-14 17 views
12

Quiero agregar un elemento html a un div y tener jquery devolverme el conjunto envuelto que contiene el elemento que acabo de anexar y no el envuelto conjunto que contiene el divObtener jquery's .append() para devolver el conjunto envuelto que contiene el objeto anexo no el contenedor

Así que mi html: -

... 

<div id="somediv">Some other elements...</div> 

... 

javascript: -

var jqueryObj = $('#somediv').append('<p>Hello, World!</p>'); 

alert(jqueryObj.html()); 

me gustaría esto a mí alertar con 'Hello, world' not 'Some other elements...<p>Hello, World!</p>'

+0

tendrá que guardar el contenido html antes de agregar el nuevo contenido, y después de agregar eliminar el contenido que ha guardado de la nueva. ¿Pero por qué no simplemente guarda el valor de lo que está agregando a una variable y usa el método .text()? –

+0

Disculpa, este fue solo un caso de prueba que configuré: en realidad, no quiero el texto del párrafo que lo contiene, quiero aplicar un diálogo de jquery ui al objeto jquery – rgvcorley

Respuesta

24

Use .appendTo() en lugar de .append().

var jqueryObj = $('<p>Hello, World!</p>').appendTo('#somediv'); 
alert(jqueryObj.html()); // '<p>Hello, World!</p>' 
+2

Woah! mi primera publicación en SO, ¡no tenía idea de cuán rápido serían las respuestas tan rápido! Increíble :) – rgvcorley

0
var jqueryObj = $('#somediv').append('<p>Hello, World!</p>'); 

alert(jqueryObj.find("p").html()); 
3

Cambiar a su alrededor, y utilizar la función .appendTo(). De este modo:

var jqueryObj = $('<p>Hello, World!</p>').appendTo('#somediv'); 

Working DEMO

+0

Perfecto, gracias! ¡Te daría un +1 pero aún no tengo 15 reputaciones! – rgvcorley

0

Prueba esto:

var jqueryObj= $('<p>Hello, world!</p>'); 
$('#somediv').append(jqueryObj); 

alert(jqueryObj.html()); 

Lo que se quiere es la variable para contener en realidad el objeto recién creado, no el div en la que añadió él.

Cuestiones relacionadas