@Danoneko

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

Вот задача: В поле c id=columns вводиться кол-во столбцов. Далее в div c id=elem строится таблица 2 на вводимое N.
Собственно вопрос: Как сделать так, чтобы при повторном изменении N, старая таблица заменялась на новую?
Вот код:
function addTable(){
	var columns = document.myform.columns.value;
	var content = '<table id="tab">';
	for(var i = 0; i < 2; i++){
		content += '<tr>';
		for(var j = 0; j < columns; j++){
			content += '<td class="tabla">' + (i+1) + '.' + (j+1) + '</td>';
		}
    	content += '</tr>';
	}
	content += '</table>';
	$('#elem').append(content);
	firstTable = content;
	if(firstTable == null){
		return document.getElementById('#elem').appendChild(table);
	}else{
		var newTable = document.getElementById('#elem').appendChild(table);
		return document.getElementById('#elem').replaceChild(newTable, firstTable);
	}
}

Кажется, что код уже готовый, но вот эта неправильная проверка на пустоту таблицы в конце: если таблицы нет, создать, иначе заменить.
Что нужно изменить в этом фрагменте?
firstTable = content;
	if(firstTable == null){
		return document.getElementById('#elem').appendChild(table);
	}else{
		var newTable = document.getElementById('#elem').appendChild(table);
		return document.getElementById('#elem').replaceChild(newTable, firstTable);
	}
  • Вопрос задан
  • 80 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
$('#elem').html(`
  <table>${[...Array(2)].map((n, iRow) => `
    <tr>${[...Array(+columns)].map((m, iCol) => `
      <td>${iRow + 1}.${iCol + 1}</td>`).join('')}
    </tr>`).join('')}
  </table>
`);
Ответ написан
@Danoneko Автор вопроса
Сама ответила на свой вопрос. Вдруг кому-то понадобиться выкладываю. Ответ очень прост.
Перед тем, как создать какую-либо таблицу надо перед ее созданием удалить предыдущую (Даже если ее не было).

$("#tab").remove();

А тот фрагмент кода в конце, который меня так смущал и вовсе не нужен;)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы