В таблице генерируется в два раза больше строк чем нужно

261
17 сентября 2017, 02:34

Здравствуйте. Есть функция, которая вставляет в таблицу строки и ячейки, но она вставляет всегда в два-три раза больше строк и ячеек чем нужно. Как исправить ту ситуацию?

Вот как выглядит код пустой таблицы:

<table id="myTable" class=""></table>

Вот функция, которая генерирует строки и ячейки:

function makeTable(){
  var table = document.getElementById('myTable');
  for (var cols = 0; cols < 2; cols++) {
    var tr = document.createElement('tr');
    table.appendChild(tr);
     for (var rows = 0; rows < 2; rows++) {
      var td = document.createElement('td');
      tr.appendChild(td);
     }
  }
      return table;
}

function makeTable() { 
 
  var table = document.getElementById('myTable'); 
 
  for (var cols = 0; cols < 2; cols++) { 
    var tr = document.createElement('tr'); 
    table.appendChild(tr); 
 
    for (var rows = 0; rows < 2; rows++) { 
      var td = document.createElement('td'); 
      tr.appendChild(td); 
    } 
  } 
  return table; 
} 
makeTable();
td { 
  border: 1px solid black; 
  width: 20px; 
  height: 20px; 
}
<table id="myTable" class=""></table>

Answer 1

Сама функция работает ожидаемо – вставляет две строки с двумя колонками за один вызов, поэтому ошибка кроется не в ней, а в вызывающем её коде. То есть где-то происходят лишние вызовы этой функции.

READ ALSO
Работа с JavaScript объектами в консоле chrome

Работа с JavaScript объектами в консоле chrome

У меня есть задание, которое звучит так:

269
Как зафиксировать фон с помощью JS?

Как зафиксировать фон с помощью JS?

Когда я изменяю фон сайта с помощью JS, то не могу его зафиксировать

277