2012-08-04 105 views
18

例如,如果我们有.tagName DOM属性为什么会返回大写值?

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

如果我们这样做document.getElementByTagName("title").TagName,那么我们将有TITLE(大写)。虽然html标准建议以小写形式写html标签。

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

DOM是否应该以大写形式返回标记名?

+1

你能引用建议使用小写字母的HTML标准吗? – 2012-08-04 19:33:26

+0

哦,我刚刚意识到'xhtml'是需要标签为小写字母的标准,但是这不会让我相信。 – 2012-08-04 19:44:11

回答

27

技术上讲,这是在强制DOM Level 1

的HTML DOM返回规范化大写形式的HTML元素的tagName,而不管源HTML文档中的情况。

大写标签名称的约定可能从传统的茎,当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。

+1

是否存在主要浏览器(或其版本)的任何已知实例不遵守此规则并在调用'nodeName'时返回小写值,无论是由于错误还是其他原因? – RTF 2016-09-15 12:33:28

相关问题