簡體   English   中英

為什么JavaScript中的tagName方法以大寫字母返回HTML標記?

[英]Why does tagName method in JavaScript return HTML tags in capital letters?

為什么JavaScript中的tagName方法以大寫字母返回HTML標記? HTML標簽應該用小寫字母書寫。

因為這是tagName的定義方式

tagName屬性的getter必須返回上下文對象HTML-uppercased限定名

HTML標記名稱(和屬性名稱)不區分大小寫,但標記名稱的規范版本全部大寫,無論創建元素的HTML是如何編寫的:

 document.querySelectorAll("div").forEach(function(div) { console.log(div.tagName); }); 
 <div></div> <DIV></DIV> <Div></Div> 

這非常方便,因為它意味着在進行比較之前,如果需要知道標記是否與特定標記名稱匹配,則查看tagName代碼不必調用toUpperCase (或toLowerCase )。 例如, if (element.tagName === "DIV")在HTML頁面中是可靠的。

首次創建JavaScript時,舊版本的HTML按照慣例使用標記名稱的全部大寫,而不是今天的小寫。 為了保持與舊代碼向后兼容, tagName()仍然返回全部大寫並且一直被卡住。

要完成,請注意tagName

返回調用它的元素的標記名稱。 例如,如果元素是a,則其tagName屬性為“IMG”(對於HTML文檔;對於XML / XHTML文檔,它可能會有所不同)。

使用svg查看下面的結果:

 [...document.querySelectorAll("*")].forEach(function(el){ console.log(el.tagName); }); 
  <svg width="300px" height="300px" xmlns="http://www.w3.org/2000/svg"> <text x="10" y="50" font-size="30">My SVG</text> </svg> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM