有没有一种简单的方法来确定HTML元素的内容类别?

时间:2014-10-31 15:36:49

标签: javascript html dom

HTML元素属于content cagetories。对于我手头的任务,我需要确保我没有嵌套交互式内容节点。

目前,我可以遍历节点的父节点,以确保它们都不属于<a>, <button>, <details>, <embed>, <iframe>, <keygen>, <label>, <select>, and <textarea>类型。所有这些元素都是“互动内容”的一部分。类别。

其他类型也可以是互动的。

  • <audio>,如果控件属性存在
  • <img>,如果存在usemap属性
  • <input>,如果type属性不处于隐藏状态
  • <menu>,如果type属性处于工具栏状态
  • <object>,如果存在usemap属性
  • <video>,如果控件属性存在

此外,任何tabindex属性is considered interactive的元素。

这些规则都是HTML规范的一部分,并且有详细记录,但需要记录下来。有没有更简单的方法来检查元素属于哪些内容类别?

1 个答案:

答案 0 :(得分:4)

不,DOM中没有任何方法可以对元素进行分类。分类仅在HTML5规范散文中进行。 DOM中反映的分类很少,例如按类型对表单字段进行分类,具有type属性,您可以根据间接查找某些分类渲染规则,因为不同的元素在样式设置中具有不同的display属性值。但是所有这些现代分类都需要使用元素名称列表在代码中实现。您可以通过仔细查看HTML5中的DOM定义并发现它们不包含分类来看到这一点。