2009-04-14 30 views
6

Điều tôi đang cố làm là tạo một điều khiển máy nhắn tin bảng bằng jQuery. Nó chứa rất nhiều liên kết và nhịp. Tôi đã quản lý để làm điều này với nối chuỗi đồng bằng, nhưng tôi không thể tin rằng jQuery không thể làm cho điều này thanh lịch hơn. Tôi không thể sử dụng jTemplates ở đây vì thế hệ có khá nhiều logic thủ tục.Làm cách nào để tạo nhiều phần tử HTML với jQuery?

Câu hỏi: có cách nào để tạo một mảng các phần tử HTML với jQuery và thêm chúng vào một số vùng chứa không?

Cảm ơn.

Trả lời

22

$('First Element').add($('Second Element')).appendTo($('body'))

+0

Điều này có thể đã hoạt động trong năm 2009, nhưng ngày nay nó không thành công với thông báo lỗi phụ thuộc vào phiên bản jQuery. [jsFiddle] (https://jsfiddle.net/dtxg22oo/1/). Những gì làm việc là '$ ('đầu tiên'). Thêm ($ ('giây')). AppendTo (...)'. –

+1

Tôi đã thử nghiệm điều này và @romkyns là đúng. Tôi đã chỉnh sửa câu trả lời cho phù hợp. – Timwi

5

Luôn luôn có append().

$('#container').append('<span>foobar baz</span>'); 

Dường như với tôi rằng chỉ cần sử dụng nối chuỗi và nối thêm sẽ là tùy chọn ít phức tạp nhất và có thể là nhanh nhất. Tuy nhiên, đây là một chưa được kiểm tra ví dụ về một cách để (cho là) ​​đơn giản hóa việc tạo ra các yếu tố, và cho phép bạn thêm chúng vào một yếu tố phụ huynh đưa ra:

function elemCreate(type, content, attrs) { 
    /* type: string tag name 
    * content: string element content 
    * attrs: associative array of attrs and values 
    */ 
    elem = '<' + type + '></' + type + '>' 
    e = $(elem).attr(attrs) 
    e.append(content) 
    return e 
} 

stuff = [];  
stuff.push(elemCreate('a', 'Click me!', {'href': 'http://stackoverflow.com'}); 

$(stuff).appendTo($('#container')); 
+0

return e không hoạt động đối với tôi return e [0] đang hoạt động – Azd325

8

String nối (hoặc Array.join) được tốt, miễn là bạn làm cho nó đẹp;)

var structure = [ 
    '<div id="something">', 
     '<span>Hello!</span>', 
    '</div>' 
]; 

$(structure.join('')).appendTo(container); 
Các vấn đề liên quan