+ 1 ответ идеальной машины. Для пояснения, не существует ни одного отдельного экземпляра Document
, связанного с единственным XMLHttpRequest
, где загрузка XML из ответа просто обновляет содержимое документа. Это не как звонить Document.load()
.
Вместо этого при отправке запроса объект XMLHttpRequest
удаляет старый Document
, на который ссылается его responseXML
, и при получении ответа создает новый экземпляр Document
с ответом. Если вы сохранили ссылку на старое значение responseXML
, это все еще допустимый Document
, но это старый XML-документ из предыдущего ответа, а не новый.
Кроме того, помните свой var i
в цикле for, чтобы избежать случайного глобала. И установка nodeValue
не имеет смысла для узла Element
; вам нужно будет document.createTextNode(string)
и добавить его вместо.
Обычно вы будете использовать вспомогательную функцию для получения / установки текстового содержимого элемента, так как традиционная DOM делает это такой болью. Свойство DOM Level 3 Core element.textContent
- это простой способ, но его нет в IE или некоторых старых браузерах.