HTML模板(自定义)标记

时间:2012-02-29 21:17:35

标签: javascript html html5-template

据我所知,使用自定义html标签是出于各种原因不合适,但我想让你运行一个特定的情况,这可能需要一个自定义的html标签,并希望得到另外说明或者可能是实现我的目标的更好方法。

在我的代码中,我使用了我称为模板的模板,这些模板由带有模板和附加隐藏类的div标签组成。这在屏幕上不可见,但基本上这些“模板”标签包含我在Javascript中用来创建各种不同项目的html。我这样做,以便我可以在html中设置我的模板样式,而不必担心将CSS与我的Javascript混合。

<!-- TEMPLATE -->
<div class="template hidden">
    <span>Random Container</span>
    <a href="#">Random Button</a>
</div>

在javascript中,我会做类似

的事情
var template = document.getElementById("template");
var clone = template.cloneNode(true);
clone.removeClass("template hidden");

我宁愿能够做这样的事情

<template class="hidden">
   <span>Random Container</span>
   <a href="#">Random Button</a> 
</template>

因此,如果我在一个div中有多个模板,我可以抓住所有模板而不必为它们提供唯一的类名。当然,我需要实施的原因比这更深入,但没有必要浪费你的时间来处理细节。我们只是说它有助于清理我的Javascript ALOT。

因为自定义模板标签是隐藏的,并且实际上只是一个容易在javascript中使用document.getElementsByTagName(“template”)调用的容器;这样可以吗?我可能会在标签前面加上一个自定义名称,以防模板被实现为html。

2 个答案:

答案 0 :(得分:2)

现代浏览器通常“支持”自定义标记,即解析它们并构建DOM节点,以便可以在脚本中对元素进行样式化和处理。

主要问题是IE 9之前的IE,但可以使用document.createElement('...')为每个自定义标记名称处理一次。

另一个问题是验证程序会将标记报告为错误,如果存在大量此类错误,您可能不会注意到标记中存在一些实际错误。原则上你可以创建自己的DTD来处理这个问题(我正在构建一个HTML DTD生成器,但它比我想象的要棘手......)。

通过这些预订,与使用类相比,如果它们本质上简化了您的工作,则使用自定义标记。

答案 1 :(得分:1)

为什么不使用HTML5的data attributes之一?它们用于存储私人数据或自定义信息。

对于您的情况,您可以添加data-type="template"data-name="template",然后根据该搜索和删除。一个简单的功能,就像你写的那样,删除你的<template>标签,但没有违反规则。

因此,使用您的示例<div data-type="template" class="hidden"></div>