我想要做的是使用jQuery創建一個表尋呼機控制。 它包含大量的鏈接和跨度。我已經設法用純字符串連接做到這一點,但我不能相信jQuery不能使這更優雅。 我不能在這裏使用jTemplates,因爲這代人有相當多的程序邏輯。如何用jQuery創建多個HTML元素?
問題:有沒有辦法用jQuery創建一個HTML元素數組並將它們追加到某個容器?
謝謝。
我想要做的是使用jQuery創建一個表尋呼機控制。 它包含大量的鏈接和跨度。我已經設法用純字符串連接做到這一點,但我不能相信jQuery不能使這更優雅。 我不能在這裏使用jTemplates,因爲這代人有相當多的程序邏輯。如何用jQuery創建多個HTML元素?
問題:有沒有辦法用jQuery創建一個HTML元素數組並將它們追加到某個容器?
謝謝。
$('First Element').add($('Second Element')).appendTo($('body'))
總是有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'));
字符串連接(或Array.join)被罰款,只要你把它漂亮;)
var structure = [
'<div id="something">',
'<span>Hello!</span>',
'</div>'
];
$(structure.join('')).appendTo(container);
這可能是在2009年的工作,但今天它失敗,取決於jQuery的版本錯誤消息。 [的jsfiddle](https://jsfiddle.net/dtxg22oo/1/)。 $('first')。add($('second'))。appendTo(...)`是可行的。 – 2016-03-19 20:19:54
我測試了這個,@romkyns是正確的。我相應地編輯了答案。 – Timwi 2016-03-19 20:35:08