Internet Explorer (включая версию 11!) Не поддерживает свойство .children
для элементов XML.
Если вы хотите получить количество дочерних элементов, используйте element.childElementCount
(IE9 +):
element.children.length; // Does not work in IE on XML elements
element.childElementCount; // Works in every browser
Если вы просто хотите узнать, есть ли у элемента дочерние элементы, вы также можете проверить, не является ли element.firstElementChild
(или element.lastElementChild
) нулевым. Это свойство поддерживается в IE9 +:
element.children.length === 0; // All real browsers
element.firstElementChild !== null; // IE 9+
Если вы хотите перебрать все дочерние элементы узла XML, используйте childNodes
и исключите неэлементные узлы через их nodeType
:
for (var i = 0, len = element.childNodes.length; i < l; ++i) {
var child = element.childNodes[i];
if (child.nodeType !== 1/*Node.ELEMENT_NODE*/) continue;
// Now, do whatever you want with the child element.
}