【问题标题】:Why does the .tagName DOM property return an uppercase value?为什么 .tagName DOM 属性返回大写值?
【发布时间】:2012-08-04 19:31:03
【问题描述】:

例如,如果我们有

<html>
    <head>
        <title>FooBar</title>
    </head>
    <body></body>
</html>

如果我们使用document.getElementByTagName("title").TagName,那么我们将拥有TITLE(大写)。而 html 标准建议用小写写 html 标签。

我知道两者之间没有关系,但这仍然没有意义。

DOM 是否有任何理由应该以大写形式返回标签​​名称?

【问题讨论】:

  • 你能引用推荐小写的HTML标准吗?
  • 哦,我刚刚意识到xhtml 是要求标签为小写的标准,但我相信这并没有什么不同。

标签: html dom standards tagname


【解决方案1】:

从技术上讲,这是DOM Level 1 中规定的:

无论源 HTML 文档中的大小写如何,HTML DOM 都会以规范的大写形式返回 HTML 元素的 tagName

大写标签名称的约定可能源于遗留问题,当时 HTML 是基于 SGML 开发的,元素类型以大写形式声明。请参阅this section of the HTML 4.01 spec discussing SGML, HTML and its syntax,以及例如the HTML 4.01 Strict doctype definition。任何支持 HTML 的 DOM 实现都会效仿。

请注意,小写标签名称仅在 XHTML 中明确需要(但不是 XML),通常建议作者编写小写标签,以便在 HTML/XHTML 之间轻松移植,并提高可读性。但是,此建议并未出现在规范中;它只是说标签名称仅在 HTML 中不区分大小写,而不是在 XHTML 和 XML 中。

【讨论】:

  • 是否有任何已知的主要浏览器(或它们的版本)实例不遵守此规则并在调用nodeName时返回小写值,无论是由于错误还是其他原因?
  • 我个人不知道。
猜你喜欢
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
相关资源
最近更新 更多