Элементы tr
хотят быть в элементе <tbody>
.
Обычно браузер вставляет один автоматически, но если он это сделал, вы стираете его с помощью ...
table.innerHTML = '';
Если вы убедитесь, что исходная таблица имеет <tbody>
, затем сделайте это ...
table = document.getElementById( 'keys-table' );
if ( !table ) return;
var tbody = table.tBodies[0];
tbody.innerHTML = '';
... и затем добавьте строки к tbody
, это будет работать.
Примечание, но я личнорекомендуем использовать методы DOM для удаления старых строк вместо innerHTML
.
var tbody = table.tBodies[0];
while( tbody.firstChild )
tbody.removeChild( tbody.firstChild );
или
var tbody = table.tBodies[0];
while( tbody.rows[0] )
tbody.deleteRow( tbody.rows[0] );
Кажется более правильным.