为什么 nodeName 有时在 javascript DOM 中全部大写?

har*_*rpo 6 javascript xml dom

所以我有一个 DOM 文档,它本质上是这样的

<categories>
    <category id="1"/>
    <category id="2"/>
</categories>
Run Code Online (Sandbox Code Playgroud)

这就是文档在 Firebug 中的预览方式,正如我所期望的。

但是,当我将其发布到服务器时,我得到

<categories>
    <CATEGORY id="1"/>
    <CATEGORY id="2"/>
</categories>
Run Code Online (Sandbox Code Playgroud)

事实上, doc.documentElement.firstChild.nodeName 返回“CATEGORY”。使用 jQuery.append('<category/>') 添加节点。

为什么所有大写返回子标签?

Tim*_*man 5

nodeName 总是返回被视为 HTML 的 DOM 中 HTML 元素的大写名称……然而,对于 XML 则不然。

更多信息在这里

我不确定这是否完全回答了您的问题,但我猜答案的一部分是您的文件被视为 HTML 文档,至少就 nodeName 而言。

更正:这是JQuery的多数民众赞成治疗之类的HTML。从这个以前的堆栈溢出答案

JQuery 使用隐藏的 div innerHTML 来构建子节点,这就是大小写不同的原因

我很确定您遇到了与之前的答案相同的问题。