2012-12-19 14 views
6

Cercando di essere efficienti qui. Come posso memorizzare un elemento come variabile prima di aggiungerlo al DOM? Sembra che sia uno spreco crearlo, aggiungerlo, quindi andare a cercarlo di nuovo per creare una variabile.jQuery rende variabile da elemento prima di accodare a DOM

Il mio metodo è di seguito. OBV sta salvando la stringa come una variabile, non l'oggetto, ma tu hai l'idea.

Qualsiasi magia per me o devo fare due viaggi?

var $rGallery = '<section id="rGallery" />'; 

$bin.before($rGallery); 

console.log($rGallery); 
+0

Alcuni di questi esempi può o non può essere utile a voi: http://stackoverflow.com/a/12009839/84206 – AaronLS

risposta

9

.before() e .append() può prendere un oggetto jQuery come parametro. Devi solo creare il tuo nuovo oggetto, memorizzarlo in una variabile e poi passarlo a .before() o .append().

esempio rapida:

<div id="bin"> </div>

var newElement; 

$(document).ready(function() { 

    newElement = $("<button>New button</button>"); 
    $("#bin").append(newElement); 

    alert(newElement.text()); 
});​ 
2
Non

sicuro esattamente quello che stai cercando di fare qui, ma se si desidera salvare il risultato di un selettore jQuery, devi farlo proprio come si farebbe con qualsiasi altra variabile:

var gallery = $("#rGallery"); 

Se si desidera creare un nuovo elemento e salvarlo:

var gallery = document.createElement("section"); 
// Do other stuff on it, like set attributes, etc. 
+0

Rad, non ci siamo resi conto che before() poteva prendere un oggetto anziché una stringa! – technopeasant

+0

@AaronLS sì ho capito che poco dopo aver salvato la mia risposta. Modificato. – regulatethis

+0

accettato @ risposta di jasontowne perché ha spiegato il metodo, oltre a dare la risposta tecnica – technopeasant