到目前爲止,最好的方法是使用某種JavaScript模板系統。這比用CSS隱藏HTML更好的原因是,如果(例如)有人禁用CSS,他們將能夠看到你的模板,這顯然不是理想的。
使用模板系統,您可以將模板放在<script>
標記中,這意味着它們完全隱藏在JavaScript以外的所有內容中。
我最喜歡的是jQuery模板系統,主要是因爲jQuery如今無處不在。你可以從這裏得到它:http://api.jquery.com/category/plugins/templates/
一個例子(從jQuery文檔拍攝):
<ul id="movieList"></ul>
<!-- the template is in this script tag -->
<script id="movieTemplate" type="text/x-jquery-tmpl">
<li><b>${Name}</b> (${ReleaseYear})</li>
</script>
<!-- this script will fill out the template with the values you assign -->
<script type="text/javascript">
var movies = [
{ Name: "The Red Violin", ReleaseYear: "1998" },
{ Name: "Eyes Wide Shut", ReleaseYear: "1999" },
{ Name: "The Inheritance", ReleaseYear: "1976" }
];
// Render the template with the movies data and insert
// the rendered HTML under the "movieList" element
$("#movieTemplate").tmpl(movies)
.appendTo("#movieList");
</script>
這是一個簡單的例子,但你可以把所有的HTML,你想在生成(使用相同的HTML代碼片段進行各種工作,只填寫空白處),甚至使用許多模板來構建更大的HTML代碼片段。
使用jQuery,您可以通過在對象中提供數據而不是一個大字符串,以更「有組織」的方式執行此操作。儘管我猜測它會變慢。 – pimvdb