2012-12-19 31 views
6

'a eklenmeden önce öğenin dışına değişken çıkarır. Bir öğeyi DOM'a eklemeden önce değişken olarak nasıl depolayabilirim? Oluşturmak için bir atık gibi görünüyor, onu ekleyin, sonra bir değişken yapmak için tekrar bulmaya gidin.jQuery, DOM

Benim yöntemim aşağıda. OBV, dizeyi bir değişken olarak değil, bir nesne olarak kaydediyor, ama siz de fikri anlıyorsunuz.

Benim için herhangi bir sihir mi yoksa iki yolculuk yapmak zorunda mıyım? Burada yapmaya çalıştığımız ama bir jQuery seçicinin sonucunu kaydetmek istiyorsanız, sadece sizin gibi yapardım tam olarak ne olduğundan emin

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

$bin.before($rGallery); 

console.log($rGallery); 
+0

Bu örneklerden bazıları ya da olmayabilir Sizin için yararlı olan: http://stackoverflow.com/a/12009839/84206 – AaronLS

cevap

9

.before() ve .append() parametre olarak bir jQuery nesnesi alabilir. Yeni nesneyi oluşturmanız, bir değişkende saklamanız ve ardından .before() veya .append()'a iletmeniz gerekir.

Hızlı örnek:

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

var newElement; 

$(document).ready(function() { 

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

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

değil başka herhangi bir değişkeni:

var gallery = $("#rGallery"); 
Eğer yeni bir öğe oluşturmak ve bunu kaydetmek istiyorsanız

:

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

Rad, before() 'in string yerine bir nesne alabildiğini fark etmedi! – technopeasant

+0

@AaronLS Evet, cevabımı kurtardıktan kısa bir süre sonra anladım. Düzenlenen. – regulatethis

+0

kabul edildi @ jasontowne'nin cevabı çünkü teknik cevabı vermenin yanı sıra yöntemi de açıkladı – technopeasant