2012-08-04 41 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

相關問題