Поскольку вы добавляете недопустимый HTML, браузер помогает вам, добавляя пропущенные элементы. Затем, когда вы добавляете ячейки таблицы, они добавляются после закрытой таблицы.
Попробуйте добавить таблицу, затем строку, затем ячейки. Кроме того, сначала соберите всю строку, а затем добавьте ее за один раз, обновление DOM (т. Е. Использование innerHTML
) - медленная операция.
var list = document.getElementById("procTable");
var listInner = "<table style='border:gray solid 1px;'><tr>";
for (var i = 0; i < result.d.ProcessDataColumnModel.length; i++) {
listInner += "<td style='border:gray solid 1px' width='" + (result.d.ProcessDataColumnModel[i].Width) + "'>" + (result.d.ProcessDataColumnModel[i].Caption) + "</td>";
}
listInner += "</tr></table>";
list.innerHTML = listInner;