【发布时间】:2012-06-25 18:41:52
【问题描述】:
如果我需要创建几个嵌套的 DOM 元素,我知道一种方法,就是将它们写成长字符串,然后使用合适的 jQuery 函数将它们放入文档中。比如:
elem.html(
'<div class="wrapper">
<div class="inner">
<span>Some text<span>
</div>
<div class="inner">
<span>Other text<span>
</div>
</div>');
这种方式显然不是最干净的。刺痛不会花费太长时间而变得混乱,并且编辑成为一个问题。我更喜欢这种表示法:
$('<div></div>', {
class : 'inner'
})
.appendTo( elem );
问题是我不知道如何在像上面那样动态创建嵌套元素时有效地实现它。所以如果有办法用第二种符号来做第一个例子,我会很高兴了解它。
基本上,问题是,动态创建嵌套 HTML 元素的最佳方法是什么,而不必处理凌乱的长字符串?
注意:我知道模板引擎。然而,这是一个关于动态创建几个 HTML 元素的问题。就像为插件或类似情况构建 DOM 依赖项一样。
【问题讨论】:
-
您可以使用模板系统,或将“模板”存储在
<script type="text/template" id="magic-wrapper-template">中并将其内容作为字符串检索。最后一种方法对我来说很容易。 -
Moustache 是您可以使用的模板库。
-
谢谢,但我已经知道了。问题是您只需要动态创建几个元素的情况,例如在为插件或类似情况构建 dom 时。
-
对一个人来说“最好”的东西可能不适合另一个人。尝试不同的方法并确定最适合您的方法
-
@charlietfl 我同意。但是你看,我只知道这种任务的一种方法,我不喜欢那种方法。所以我问这个问题是为了了解一些新的和更好的东西。
标签: javascript jquery dom nested