Почему nodeName иногда все-шапки в javascript 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('<category> ').

Почему дочерние теги возвращаются во всех кепках?

Ответы

Ответ 1

nodeName всегда возвращает имя верхнего регистра для HTML-элементов в DOM, обрабатываемых как HTML... однако не для XML.

подробнее здесь

Я не уверен, что это полностью отвечает на ваш вопрос, но я предполагаю, что часть ответа заключается в том, что ваш файл обрабатывается как документ HTML, по крайней мере, до имени nodeName.

Исправление: Это JQuery, обрабатывающее такие вещи, как HTML. Из этого предыдущего ответа на переполнение стека:

JQuery использует скрытый div innerHTML для создания дочернего node, поэтому капитализация отличается

Я уверен, что вы столкнулись с той же проблемой, что и в предыдущем ответе.