2012-12-19 33 views
6

Cố gắng đạt hiệu quả tại đây. Làm cách nào để lưu trữ một phần tử dưới dạng biến trước khi thêm nó vào DOM? Có vẻ như đó là một sự lãng phí để tạo ra nó, nối thêm nó, sau đó đi tìm lại nó để tạo ra một biến.jQuery biến biến thành phần tử trước khi thêm vào DOM

Phương pháp của tôi ở bên dưới. OBV nó tiết kiệm chuỗi như là một biến, không phải là đối tượng, nhưng bạn có được ý tưởng.

Bất kỳ phép thuật nào đối với tôi hoặc tôi có phải thực hiện hai chuyến đi không?

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

$bin.before($rGallery); 

console.log($rGallery); 
+0

Một số ví dụ có thể hoặc có thể không hữu ích cho bạn: http://stackoverflow.com/a/12009839/84206 – AaronLS

Trả lời

9

.before().append() có thể mất một đối tượng jQuery như một tham số. Bạn chỉ cần tạo đối tượng mới của mình, lưu trữ nó trong một biến và sau đó chuyển nó đến .before() hoặc .append().

nhanh Ví dụ:

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

var newElement; 

$(document).ready(function() { 

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

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

Không chắc chính xác những gì bạn đang cố gắng làm ở đây nhưng nếu bạn muốn lưu kết quả của một selector jQuery, bạn muốn làm điều đó giống như bạn làm bất kỳ biến khác:

var gallery = $("#rGallery"); 

Nếu bạn muốn tạo ra một nguyên tố mới và lưu nó:

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

Rad, đã không nhận ra rằng trước khi() có thể mất một đối tượng thay vì chuỗi! – technopeasant

+0

@AaronLS yep Tôi nhận ra rằng ngay sau khi lưu câu trả lời của tôi. Đã chỉnh sửa. – regulatethis

+0

chấp nhận câu trả lời của @ jasontowne bởi vì anh ấy đã giải thích phương pháp thay thế cũng như đưa ra câu trả lời kỹ thuật – technopeasant

Các vấn đề liên quan