JavaScript 代码中的 HTML 生成

3

我希望了解您对于在我的JS代码中生成HTML代码的想法。

我认为html.push("<tag>" + something + "</tag>")这种方式相当烦人。我已经尝试在我的HTML文件中使用模板(并放置一些占位符),然后将其内容替换为我的真实值。

但也许您有其他的想法,可能使用jQuery之类的工具。


你对模板解决方案有什么不喜欢的地方? - Nosredna
你能否提供更多细节或示例?我不确定你正在尝试做什么。你是想构建 HTML 并调用 something.innerHTML = myhtmlstring,还是想使用 DOM 的 appendChild / replaceChild 函数? - Jason S
6个回答

5

jQuery是一个很好的选择。你可以做出如下操作:

// create some HTML
var mySpan = $("<span/>").append("Something").addClass("highlight");
  • 它具有跨浏览器的兼容性,
  • 它是一种易于使用的语法。

还有一个模板插件


4

3

我非常喜欢PrototypeJS如何处理模板

首先,您需要创建一个Template类的实例,并传递一个包含模板HTML的字符串。

var tpl = new Template('Here is a link to <a href="#{link}">#{sitename}</a>');

然后您需要传递包含要替换模板中值的数据。
$('someDiv').innerHTML = tpl.evaluate( {link: 'http://www.stackoverflow.com', sitename: 'StackOverflow'} );

在上面的例子中,我有一个id为"someDiv"的div,并用模板评估的结果替换了div的内容。

3

jQuery有像jBindjTemplate这样的javascript模板插件。虽然我自己没有使用过它们,但我推荐尽可能使用jQuery。

关于HTML生成的注意事项是,在大多数情况下,它不可被搜索引擎搜索。


3
Resig在他的博客中介绍了一个非常轻量级的模板系统,具体内容请参考这篇博文

0

有许多支持此功能的JQuery函数。特别是,您应该查看append(content)appendTo(content)prepend(content)prependTo(content)replaceWith(content)after(content)before(content)insertAfter(content)insertBefore(content)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接