7

为什么 JavaScript 中的 tagName 方法以大写字母返回 HTML 标签?HTML 标签应该用小写字母书写。

4

3 回答 3

4

最初创建JavaScript时的旧版HTML按照惯例使用全部大写的标记名称,而不是今天的小写。为了保持与旧代码的向后兼容,仍然返回全部大写,并且一直保持这种状态。tagName()

于 2018-10-16T17:59:23.133 回答
2

因为这就是tagName定义的方式:

tagName 属性的 getter 必须返回上下文对象HTML 大写限定名

HTML 标签名称(和属性名称)不区分大小写,但标签名称的规范版本全部大写,无论创建元素的 HTML 是如何编写的:

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

这非常方便,因为这意味着如果需要知道标签是否与特定标签名称匹配,则在进行比较之前查看的代码tagName不必调用toUpperCase(or )。toLowerCase例如,if (element.tagName === "DIV")在 HTML 页面中是可靠的。

于 2018-10-16T17:54:30.870 回答
0

要完整,请注意tagName

返回调用它的元素的标签名称。例如,如果元素是 ,它的 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>

于 2018-10-17T09:07:25.897 回答