Насколько мне известно, установка свойства innerHTML элемента table
или элемента таблицы (например, tbody
или thead
) не работает в Internet Explorer (EDIT: я только что проверил - с помощью ietester и простой IE8. Результатом является «неизвестная ошибка времени выполнения» для IE6 и IE8, и он приводит к сбою IE7, но это может быть специфической проблемой IEtester).
Стандартный способ добавления строк в таблицу использует метод insertRow()
для элемента таблицы или раздела таблицы (ищите HTMLTableElement и HTMLTableSectionElement в этой спецификации DOM):
<script type="text/javascript">
function addTable() {
var c, r, t;
t = document.createElement('table');
r = t.insertRow(0);
c = r.insertCell(0);
c.innerHTML = 123;
c = r.insertCell(1);
c.innerHTML = 456;
document.getElementById("addtable").appendChild(t);
}
</script>
В скрипте не создается явный раздел таблицы. AFAIK, TBODY создается автоматически, и в него вставляются строки.
РЕДАКТИРОВАТЬ: в отношении IE, я должен отметить, что вы можете добавить таблицу с содержимым и все, установив свойство innerHTML
, но HTML-код, который вы вводите, должен быть полной таблицей. Так что это работает, даже на IE:
<script type="text/javascript">
function addTable() {
var html = "<table><tr><td>123</td><td>456</td></tr></table>";
document.getElementById("addtable").innerHTML = html;
}
</script>