У меня возникла проблема со сценарием AJAX, который я исправляю: устанавливается соединение AJAX, данные XML возвращаются (правильно), однако данные не отображаются правильно ни в одном браузере, кроме IE. Элементы получаются с помощью xmlData.childNodes[1], который отлично работает в IE, но в Opera, Firefox, Chrome и т. д. возвращаются данные, отличные от тех, которые возвращаются в IE. Я думаю, что IE использует другой метод индексации элементов DOM, поэтому вместо того, чтобы начинать с 0, он начинается с 1 или что-то в этом роде.
В любом случае, зная это, как я могу получить данные из элемента XML, ссылаясь на имя элемента? Если это невозможно, как мне обойти эту проблему индексации?
Получение XML-элемента по имени в ajax responseXML?
Ответы (2)
Вы получаете что-нибудь обратно в этих других браузерах? Может быть, xml возвращается с неправильным типом mime?
Вероятно, вам лучше использовать методы селектора, а не только дочерние узлы. то есть
elements = xmldoc.getElementByTagName('tag')
element = xmldoc.getElementById('id')
Таким образом, если xml изменится в будущем, вам не нужно будет помнить, какой индекс указывает, где.
person
Nathan
schedule
04.06.2010
Вы просмотрели: http://www.w3schools.com/dom/dom_nodes_access.asp
А также примеры здесь: http://www.w3schools.com/dom/dom_nodes_info.asp
person
sirhc
schedule
04.06.2010
getElementsByTagName('x')
работает в DOM браузера (практически во всех браузерах). Я не уверен на 100%, работает ли он также с XML, возвращаемым запросом AJAX? - person Chris Lercher   schedule 04.06.2010