Javascript HTML模板(自定义)标记

Javascript HTML模板(自定义)标记,javascript,html,html5-template,Javascript,Html,Html5 Template,我知道由于各种原因使用自定义html标记是不合适的,但我想让您运行一个特定的情况,可能需要自定义html标记,并希望您告诉我其他情况,或者可能有更好的方法来实现我的目标 在我的代码中,我称之为模板,它由一个带有模板的div标记和一个附加的隐藏类组成。这在屏幕上不可见,但基本上这些“模板”标记包含html,我在Javascript中使用html创建各种不同的项目。我这样做是为了我可以用html来设计我的模板,而不必担心将CSS与Javascript混合在一起 <!-- TEMPLATE --

我知道由于各种原因使用自定义html标记是不合适的,但我想让您运行一个特定的情况,可能需要自定义html标记,并希望您告诉我其他情况,或者可能有更好的方法来实现我的目标

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

<!-- TEMPLATE -->
<div class="template hidden">
    <span>Random Container</span>
    <a href="#">Random Button</a>
</div>
我宁愿能做这样的事

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

随机容器
因此,如果我在一个div中有多个模板,我就可以获取它们,而不必给它们唯一的类名。当然,我需要实现的理由比这要深刻得多,但没有必要在细节上浪费时间。让我们说,它将有助于清理我的Javascript很多


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

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

对于您的案例,您可以添加
data type=“template”
data name=“template”
,然后基于此进行搜索和删除。一个简单的函数,就像您编写的删除
标记一样,但不违反规则


那么,以你的例子来说,

为什么不使用HTML5呢?它们用于存储私人数据或自定义信息

对于您的案例,您可以添加
data type=“template”
data name=“template”
,然后基于此进行搜索和删除。一个简单的函数,就像您编写的删除
标记一样,但不违反规则


因此,以您的示例为例,

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

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

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


有了这些保留,如果与使用类相比,自定义标记本质上简化了您的工作,请使用它们。

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

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

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


有了这些保留,如果自定义标记与使用类相比本质上简化了您的工作,请使用它们。

没有“自定义HTML标记”这样的东西。要么是HTML,要么不是。(和:-)是的,我明白,谢谢。如果你想编辑我的问题来澄清这一点,请随意,但我认为这是不言自明的。你可能认为你的模板不可见,但我告诉你它是——。没有“自定义HTML标记”这样的东西。要么是HTML,要么不是。(和:-)是的,我明白,谢谢。如果你想编辑我的问题来澄清这一点,请随意,但我认为这很容易解释。你可能会认为你的模板不可见,但我告诉你它是--。我是否在JS中使用div.getAttribute(“数据类型”)像其他自定义属性一样进行搜索?是的-
div.getAttribute(“数据类型”)
在这种情况下会返回“模板”我是否在JS中使用div.getAttribute(“数据类型”)像其他自定义属性一样进行搜索?是的-
div.getAttribute(“数据类型”)
在这种情况下将返回“模板”
<template class="hidden">
   <span>Random Container</span>
   <a href="#">Random Button</a> 
</template>