2009-04-14 46 views
6

我想要做的是使用jQuery創建一個表尋呼機控制。 它包含大量的鏈接和跨度。我已經設法用純字符串連接做到這一點,但我不能相信jQuery不能使這更優雅。 我不能在這裏使用jTemplates,因爲這代人有相當多的程序邏輯。如何用jQuery創建多個HTML元素?

問題:有沒有辦法用jQuery創建一個HTML元素數組並將它們追加到某個容器?

謝謝。

回答

22

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

+0

這可能是在2009年的工作,但今天它失敗,取決於jQuery的版本錯誤消息。 [的jsfiddle](https://jsfiddle.net/dtxg22oo/1/)。 $('first')。add($('second'))。appendTo(...)`是可行的。 – 2016-03-19 20:19:54

+1

我測試了這個,@romkyns是正確的。我相應地編輯了答案。 – Timwi 2016-03-19 20:35:08

5

總是有append()

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

在我看來,僅僅使用字符串連接和追加將是最複雜的,而且很可能最快的選擇。然而,以下是一種方法,(可以說)簡化元素的創建,並允許你將它們附加到一個給定的父元素的未經測試例如:

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')); 
8

字符串連接(或Array.join)被罰款,只要你把它漂亮;)

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

$(structure.join('')).appendTo(container);