为什么nodeName有时在javascript DOM中都是大写的?

为什么nodeName有时在javascript DOM中都是大写的?,javascript,xml,dom,Javascript,Xml,Dom,所以我有一个DOM文档,基本上看起来像这样 <categories> <category id="1"/> <category id="2"/> </categories> 正如我所料,这就是Firebug中文档的预览方式 但是,当我将此发布到服务器时,我得到 <categories> <CATEGORY id="1"/> <CATEGORY id="2"/> </ca

所以我有一个DOM文档,基本上看起来像这样

<categories>
    <category id="1"/>
    <category id="2"/>
</categories>

正如我所料,这就是Firebug中文档的预览方式

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

<categories>
    <CATEGORY id="1"/>
    <CATEGORY id="2"/>
</categories>

实际上,doc.documentElement.firstChild.nodeName返回“CATEGORY”。使用jQuery.append(“”)添加节点


为什么在所有CAP中都返回子标记?

nodeName始终返回DOM中HTML元素的大写名称,并将其视为HTML。。。然而,XML却不是这样

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

更正:是JQuery处理HTML之类的东西。发件人:

JQuery使用隐藏的div innerHTML来构建子节点,这就是大小写不同的原因
我敢肯定,您遇到的问题与前面的回答相同。

谢谢,+1的信息。我已经尝试使用DOMParser()和document.implementation.createDocument()来实例化对象——我还可以做些什么来将其作为XML处理?只是在我的答案中添加了一点。。。根据前面的回答(我自己对jQuery不太熟悉,所以我不能100%肯定),我认为是jQuery造成了这个问题。是的,你是对的。我重写了代码以使用本机DOM方法,这种情况现在得到了尊重。直到最近我才开始抵制jQuery,并且非常喜欢它。我必须承认,我偶尔会有点沾沾自喜地了解更多。这是你从学习非JQuery方法中得到的报应。:)