Вы можете использовать собственный метод insertCell()
для вставки ячеек.
Дайте попробовать:
Пример: http://jsfiddle.net/VzTJa/
var new_row = document.createElement('tr');
new_row.insertCell(0).innerHTML = "test";
new_row.insertCell(1).innerHTML = "test2";
или вы можете сделать это без функции insertAfter()
, используя insertRow()
.
Пример: http://jsfiddle.net/VzTJa/1/
var insert = document.getElementById("insert");
var new_row = insert.parentNode.insertRow( insert.rowIndex + 1 );
new_row.insertCell(0).innerHTML = "test";
new_row.insertCell(1).innerHTML = "test2";
Попробуйте этот обходной путь:
Пример: http://jsfiddle.net/VzTJa/2/
var temp = '<table><tbody><tr>';
var close_temp = '</tr></tbody></table>';
var temp_div = document.createElement('div');
var html_to_insert = '<td>tester</td><td>tester</td>';
temp_div.innerHTML = temp + html_to_insert + close_temp;
insertAfter(document.getElementById("insert"), temp_div.firstChild.firstChild.firstChild);
temp_div.removeChild(temp_div.firstChild);
В основном создает пару строк, представляющих открывающий и закрывающий теги таблицы. Вы объединяете его со своим контентом и устанавливаете его как innerHTMl
временного div
, затем выбираете нужную строку и делаете .appendChild()
.
Может быть, есть лучший способ, или вы можете найти способ улучшить этот.
Я придумал это после того, как взглянул на решение в этой статье от парня, который, очевидно, работал в IE и частично отвечает за анализатор.