【发布时间】:2015-08-20 19:42:59
【问题描述】:
我正在创建一个需要创建可重用元素的网站。这是一个例子:
<div class="item">
<div class="title"></div>
<div class="description"></div>
</div>
所以 - 在 for 循环中,我想多次克隆此元素并更改标题和描述内容。
出于这个原因,我将模板放置在页面中的一个隐藏元素中,如下所示:
<div id="templates" style="display:none">
<div class="item">
<div class="title"></div>
<div class="description"></div>
</div>
</div>
我不确定这是在页面中创建可重用元素的好方法。这是我能想到的。
所以我在页面加载时通过这个获得了我的模板元素:
var templates = $("templates");
对于我想要重用的每个元素(当我需要重用时),在这一点之后,我会这样做:
var item = templates.find(".item");
那么我将如何继续创建新元素并更改它们的标题和描述?我已经尝试了以下 #container div 作为所有生成元素的主要容器对象:
$("#container").html(item.clone().html())
但这只是给了我一个对象。我根本不知道应该如何进行。
感谢任何 cmets - 如果这是一种不好的方法,请赐教,我很想知道一个好的方法。
谢谢。
【问题讨论】:
-
将 html 字符串保存在变量中而不是将其保存在 DOM 中有什么问题
-
如果每次都进行克隆会影响性能。但与此相比,将这些元素用作字符串会更有效。
-
为了可读性,仅此而已。我不喜欢在 js 中保留 html 字符串,因为它很难编辑和阅读
标签: javascript jquery html