Я делаю Ajax-запрос, в котором у меня есть сервер, возвращающий правильно сформированный HTML, в частности элементы строки таблицы ("tr").Я надеялся использовать DOM для вставки этих строк в таблицу, читая из элемента responseXML объекта запроса (XMLHttpRequest).По сути, у меня есть
var myTable = document.getElementById("myTable");
var tableRows = responseXML.getElementsByTagName("tr");
for (var i = 0; i < tableRows.length; i++) {
myTable.appendChild(tableRows[i]);
}
Здесь много чего происходит.«ResponseXML» содержит правильные данные, и вызов «getElementsByTagName» также работает правильно.К сожалению, это ломается, когда я пытаюсь добавить строку, вызывая appendChild (я получаю неопределенную ошибку JavaScript).Я думаю, это потому, что хотя каждый элемент в массиве «tableRows» является правильным XML-элементом, браузер не может автоматически интерпретировать его как HTML-элемент.Я заметил, что если я создаю новый файл используя document.createElement ("tr") и проверяю его во время выполнения, он выглядит в памяти иначе, чем элементы в массиве "tableRows".Кроме того, я могу вставить это новое (созданное с помощью «createElement») в таблицу без ошибки.
Есть ли хороший способ сделать то, что я пытаюсь сделать здесь?Я надеялся, что смогу заставить браузер правильно интерпретировать элементы, возвращая содержимое в виде XML и используя responseXML / getElementsByTagName.Таким образом, я мог бы избежать использования responseText для того, что действительно является HTML, и я также мог бы избежать использования «innerHTML», потому что это не стандарт.Однако в большинстве примеров в Интернете используется innerHTML.Это действительно лучший способ?