Как программно создать таблицу? JavaScript [требует правки]

262
09 июня 2017, 09:06

Пытаюсь так, но уже в четвертой строке ошибка

for (i = 1; i < 10; i++)
{   
    var tr = new Array();
    var tr[i] = document.createElement('tr');
    tr[i].id = 'tr' + i;
    var td1 = new Array();
    var td2 = new Array();
    var td3 = new Array();
    var td1[i] = document.createElement('td');
    var td2[i] = document.createElement('td');
    var td3[i] = document.createElement('td');
    document.getElementById('stat').appendChild(tr[i]);
    td1[i].innerHTML='1';
    document.getElementById('tr' + i).appendChild(td1[i]);
    td2[i].innerHTML='2';
    document.getElementById('tr' + i).appendChild(td2[i]);
    td3[i].innerHTML='3';
    document.getElementById('tr' + i).appendChild(td3[i]);
}

UPD

for (i = 0; i < 10; i++)
{
    var tr = document.createElement('tr');
    tr.id = 'tr' + 1;
    var td1 = document.createElement('td');
    var td2 = document.createElement('td');
    document.getElementById('stat').appendChild(tr);
    td1.innerHTML = "1";
    document.getElementById('tr' + i).appendChild(td1);
    td2.innerHTML = "2";
    document.getElementById('tr' + i).appendChild(td2);
}
Answer 1

Не стоит использовать createElement в цикле, это очень тяжёлая операция. Не стоит собирать строку в цикле добавлением текста в конец строки, по сравнению с добавлением элемента в массив, это тоже дорогая операция. Поэтому лучше собрать фрагменты текста в массив и выполнить join:

var tableArr=['<table>'];
for (i = 1; i < 10; i++){
    tableArr.push('<tr><td>'+i+'</td></tr>');
}
tableArr.push('</table>');
document.getElementById('stat').innerHTML=tableArr.join('\n')
READ ALSO
Как сверстать круг, разделенный на цвета

Как сверстать круг, разделенный на цвета

Нужен наиболее верный способМожно для примера разделить круг на 3 сегмента

433
Клик над изображением canvas

Клик над изображением canvas

Есть несколько изображений, которые можно перемещать с помощью мыши по canvasНо если клик происходит над двумя рисунками одновременно то они...

234
При наведении всплывающие окна рядом

При наведении всплывающие окна рядом

Есть идентичные элементы на страницеПри наведении на любой из них должно появляться всплывающее окно рядом

329