在MDN上阅读有关Element.tagName的信息,它指出:
在标记为HTML文档的DOM树中的HTML元素上,tagName以大写形式返回元素名称.
我的问题是:这是值得信赖的吗?IE(旧的和现代的)表现如预期的那样吗?这可能会改变吗?还是总是合作更好el.tagName.toLowerCase()?
Leo*_*Leo 22
你不需要toLowerCase或者其他什么,浏览器在这一点上也是如此(令人惊讶的是吧?).
关于理由,一旦我与一位对W3C标准非常专业的同事进行了讨论.如果他的意见是使用大写TAGNAME将更容易从用户内容中识别它们.这对我来说很有说服力.
编辑:正如@adjenks所说,如果文档Content-Type: application/xhtml+xml作为服务器,XHTML doctype返回混合大小写的tagName .测试页:http://programming.enthuses.me/tag-node-case.php?doc = x
从技术上讲,请阅读此规范以获取更多信息:http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-745549614
请注意,此(tagName)在XML中保持大小写,DOM的所有操作也是如此.无论源HTML文档中的大小写如何,HTML DOM都会以规范的大写形式返回HTML元素的tagName.
至于提问者的问题:这是值得信赖的.HTML规范中不太可能发生重大变化.
cra*_*yze 21
在WebKit/Chromium中,它不可信,WebKit也可以用小写创建tagName属性,大多数网页构建大写的tagName,但也可以构建小写值,因此如果你使用WebKit,你必须准备支持这两种情况.我认为tagName是大概的大写(大多数是),我看到我错了,现在我必须修复我的脚本:)
编辑: console.log
tagName并且nodeName以小写或大小写敏感,以防页面响应标头具有Content-type: application/xhtml+xml;标头或任何与xhtml相关的内容类型。例如,document.documentElement.nodeName返回返回以html
了解更多情况:https : //www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-745549614
我的测试表明,tagNameSVG 元素的 似乎在我于 2018 年 8 月检查的所有浏览器中都是小写的(Chrome 68、Firefox 61、Edge 42、IE11)
不确定这与 MDN 文档中提到的“DOM 树”有何关系 - 也许 SVG 树是单独/不同处理的,尽管它们是 DOM 树的一部分。最后,开发人员通常会提到“SVG 元素”和“DOM 元素”,以指出它们不是同一件事。
无论如何,如果您的应用程序需要处理 SVG 元素以及常规 DOM 元素,请确保使用tagName.toUpperCase().
一起工作element.tagName.toLowerCase(),如果你的代码需要在较低的情况下的输出。如果将来标准更改为小写,那么您将不会在输出中获得不同的值,因为它无论如何都被格式化为小写。
相反,如果您不使用它,toLowerCase()那么如果标准更改为小写输出,则您的代码输出可能会发生变化。
我怀疑标准会为此而改变。这完全取决于您的需求。
| 归档时间: |
|
| 查看次数: |
7068 次 |
| 最近记录: |