Вам нужно использовать другой цикл или фиксированный индекс вместо повторного использования индекса цикла (например, ...("name")[i]
) в следующей строке:
item.options[item.options.length] = new Option(
tests.getElementsByTagName("name")[i].childNodes[0].nodeValue,
tests.getElementsByTagName("code")[i].childNodes[0].nodeValue
);
Вы перебираете узлы элементов, используя var i
, который, очевидно, будет увеличиваться на единицу каждый экземпляр цикла. Теперь, если вы проанализируете какой-либо элемент на i > 0
, вы не сможете получить доступ к тегу name
, поскольку его нет (по крайней мере, в вашем примере xml).