2012-08-22 36 views
0

我一直在使用$不用彷徨了,讓我的收藏夾內容的追加jQuery的量大HTML

$.get('sidebar-lightbox.html', function(data, elem) { 

//DO STUFF HERE 
}); 

我在找整潔的方式來增加大(ISH),也許20行,HTML的追加。目前我正在做

$('.selector').append('<div id="wrapper"><div id="inner"><div id="content"></div></div></div>') 

這是有點混亂和不可讀的html越來越大,尋找一個不錯的方法:)。

+2

你需要動態地做到這一點嗎?你可以加載它隱藏,然後改變狀態? –

+0

是需要動態的。 – LeBlaireau

回答

1
$('<div/>', { id: 'wrapper' }).appendTo('.selector'); 
$('<div/>', { id: 'inner' }).appendTo('#wrapper'); 
$('<div/>', { id: 'content' }).appendTo('#inner'); 

如果你願意,你也可以做類似:

$('<div/>', { id: 'wrapper' }).append(
    $('<div/>', { id: 'inner' }).append(
     $('<div/>', { id: 'content' }) 
    ) 
).appendTo('.selector')​; 

您可以設置任意數量的屬性,在這裏賽道的,記得把那些即字符串中的JavaScript關鍵字,即$('<div/>', { id: 'id', 'class': 'x' })。您也可以鏈接多個.attr.html調用以獲得所需的標記。

+0

這是我在尋找什麼樣的多重追求表現? S – LeBlaireau

+0

@welovedesign:使用jQuery而不是JavaScript時總會有性能開銷。除非你多次調用這個方法,否則我不會太擔心。在我的機器上測試時,以這種方式創建和追加的執行速度大約爲每秒20k次操作,而對於追加字符串則大約爲40k次操作。但是,您需要從純粹JS執行〜430k ops/s的角度出發,這是您始終爲使用框架付出的代價。 [jsPerf](http://jsperf.com/jquery-append-perf) –

+0

爲了清楚你的關鍵字字符串,「class」必須用引號引起來,因爲它是一個實際的jQuery術語,是否正確? – Jon

0

先創建一個var然後附加它。這將是更具可讀性

var stuff = '<div id="wrapper">'; 
    stuff += '<div id="inner">'; 

// etc. then you append it 
$('.selector').append(stuff);