2012-02-14 7 views
12

Voglio aggiungere un elemento html a un div e avere jquery restituire il set avvolto che contiene l'elemento che ho appena aggiunto e non l'avvolto set contenente il divOttieni jquery's .append() per restituire il set avvolto contenente l'oggetto aggiunto non il contenitore

Quindi il mio html: -

... 

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

... 

javascript: -

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

alert(jqueryObj.html()); 

Vorrei questo per avvisare me con 'Hello, world' non 'Some other elements...<p>Hello, World!</p>'

+0

si dovrebbe salvare il contenuto html prima di aggiungere il nuovo contenuto e dopo l'aggiunta rimuovere il contenuto salvato dal nuovo. Ma perché non si salva semplicemente il valore di ciò che si aggiunge a una variabile e si utilizza il metodo .text()? –

+0

Siamo spiacenti, questo è stato un caso di prova che ho impostato - Non voglio realmente il testo del paragrafo che lo contiene, voglio applicare una finestra di dialogo ui jquery all'oggetto jquery – rgvcorley

risposta

24

Utilizzare .appendTo() anziché .append().

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

Woah! il mio primo post in assoluto per SO, non avevo idea di quanto fossero veloci le risposte sarebbero così veloci !! Incredibile :) – rgvcorley

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

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

attivandoli in giro, e utilizzare la funzione .appendTo(). In questo modo:

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

Working DEMO

+0

Perfetto, grazie! Ti darei un +1 ma non ho ancora 15 reputazioni! – rgvcorley

0

Prova questo:

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

alert(jqueryObj.html()); 

quello che vuoi è la variabile per contenere in realtà l'oggetto appena creato, non il div in cui è stato aggiunto esso.

Problemi correlati