У Microsoft есть страница, которая может освещать происходящее.
http://msdn.microsoft.com/en-us/library/ms532998(VS.85).aspx#TOM_Create
Для динамического построения таблиц они используют «Табличную объектную модель», в которой используются методы, такие как insertRow()
и insertCell()
, для выполнения работы, которую вы выполняете с методами DOM createElement()
и appendChild()
. Также нормально, если вы используете методы DOM, но "Internet Explorer требует, чтобы вы создали элемент tBody и вставили его в таблицу при использовании DOM. Поскольку вы управляете деревом документов напрямую, Internet Explorer не создает tBody, что автоматически подразумевается при использовании HTML. "
Объектная модель таблицы работает в нескольких браузерах, в которых я ее тестировал (Chrome и Firefox на Mac), поэтому знакомство с ней может быть неплохой. Или, если вы хотите придерживаться методов DOM, добавьте элемент tBody
, потому что это требуется в IE.
Если вы добавите следующий код в конец вашего AddTable()
метода, вы увидите, как эти два сравниваются (в основном, во второй таблице будет tBody
). И это будет отображаться в IE8.
// now the Table Object Model way
table = document.createElement('table');
row = table.insertRow(-1) ;
cell = row.insertCell(-1) ;
cell.innerHTML='def';
divContainer.appendChild(table);
Надеюсь, это поможет.