Не работает заполнение таблицы

Фрагмент кода:

<table id="tbl"></table>
<script>
for(var i = 0; i < 10; i++){
        tbl.innerHTML += "<tr>";
        for(var j = 0; j < 50; j++){
            tbl.innerHTML += "<td>&nbsp;</td>";
        }
        tbl.innerHTML += "</tr>";
}
</script>

Таблицу заполняет так:

<tr></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr>...

А должен так:

<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
...
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
...
</tr>...

Ответы (2 шт):

Автор решения: Igor

Не добавляйте незаконченный html в таблицу. Браузер сам закрывает незакрытый tr.

var rows = "";
for(var i = 0; i < 10; i++){
    rows += "<tr>";
    for(var j = 0; j < 50; j++){
        rows += "<td>&nbsp;</td>";
    }
    rows += "</tr>";
}
tbl.innerHTML = rows;
→ Ссылка
Автор решения: Deonis

В чём была ваша ошибка, уже подсказал @Igor, а я просто дам альтернативный вариант:

tbl.innerHTML = `<tr>${`<td>&nbsp;</td>`.repeat(50)}</tr>`.repeat(10);
→ Ссылка