0

这是一个非常简短的示例,但我想知道是否有一种方法可以使用带有 html 标记的 xml 或 html 文件,而不是像下面那样将其包含在 javascript 中。

我知道那里有模板库,但我真的只想做一些简单的事情,不涉及除 jQuery 之外的任何库。

var description = this.name;

if description == 'full') {
    return "<div><textarea cols='50' rows='50'>" + this.value + "</textarea></div>";
} else {
    return "<div><textarea cols='50' rows='15'>" + this.value + "</textarea></div>";
};

谢谢

4

3 回答 3

2

一般来说,如果没有模板引擎,您有以下三种选择:

a) 将模板作为脚本标签直接添加到您的标记中

<script type="text/template" data-template="stats">
   <div id="content">
      ...
   </div>
</script>

可以使用以下代码访问 script 标签内的 html 代码:

$("script[data-template=" + templateName + "]").html()

这种方法的最大好处是您不会发出另一个 http 请求。

b) 将模板放入外部文件并通过 ajax 加载。

$.ajax({
    url: "test.html"
}).done(function(html) {
    ...
});

c) 做你已经做过的事情。

于 2013-10-31T18:37:06.683 回答
1

如果使用 AJAX 调用文件,则可以使用文件的结果,可以是 XML 或嵌套的 HTML 等。

于 2013-10-31T18:37:52.910 回答
1

我在我的标记上定义了一个隐藏的 div - 然后给它一个通用 ID,然后在 javascript 中我使用 jQuery.clone() 方法来克隆该标记,并在标记中定义模板宏值,然后可以使用 .replace.. 注入真实数据

HTML:

<div id="mytemplate">
Name: {0}
</div>

JS/jQuery:

var clone = $('#mytemplate').clone();

然后在克隆对象上执行替换,并简单地附加到需要的 DOM 中!

于 2013-10-31T18:38:25.393 回答