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

时间:2010-03-24 19:12:56

标签: javascript xml dom

所以我有一个看起来基本上像这样的

的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('&lt; category /&gt;')添加节点。

为什么所有大写字母都会返回子标签?

1 个答案:

答案 0 :(得分:3)

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

more info here

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

更正: JQuery 正在处理像HTML这样的事情。来自this previous Stack Overflow answer

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

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