Лучшим способом было бы использовать insertRow
[MDN] :
var row = document.getElementById('mytable').insertRow(-1);
row.innerHTML = displayArrayAsTable(QR4, 24, 25);
Что касается tBody
:Да, это может быть проблемой.Браузер всегда генерирует элемент tBody
, независимо от того, указан он в HTML или нет.
Возможно, вы можете решить свою проблему, просто добавив новую строку в этот элемент tBody
:
document.getElementById('mytable').tBodies[0].appendChild( row );
Но я помню, что читал, что у IE были проблемы с манипулированием таблицами с помощью обычных методов манипулирования DOM.Применимо ли это и в этом случае, я не знаю.insertRow
должно работать в любом случае.
Обновление: Действительно, кажется, что IE также не любит добавлять td
элементы с innerHTML
.Решением было бы передать row
также в качестве параметра displayArrayAsTable
и использовать insertCell
[MDN] для создания новой ячейки.
Обновление 2: Например, вы можете сделать это так:
for ( var x = from; x < to + 1; x++ )
{
var cell = row.insertCell(-1);
cell.innerHTML = array[x];
}
, где row
- четвертый параметр функции и называется:
var row = document.getElementById('mytable').insertRow(-1);
displayArrayAsTable(QR4, 24, 25, row);