Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание таблицы стирает все остальное на странице (https://javascript.ru/forum/misc/77331-sozdanie-tablicy-stiraet-vse-ostalnoe-na-stranice.html)

Darveus 20.04.2019 00:47

Создание таблицы стирает все остальное на странице
 
function addTable() { //созданиe таблицы
	var k = 0, s = 10, p = 65;
	//var str = document.getElementById('str').value;
	//var stlb = document.getElementById('stlb').value;
    var str = 2;
	var stlb  = 3;
	document.write ('<table width="50%" border="2">');
    for (i=0; i<=str; i++) {
      document.writeln("<tr>");	
      for (j=0; j<=stlb; j++) {
	  if(i === 0 && j === 0){
	  document.write("<td width= 20%>" + 'FSM' + "<\/td>"); 
	  }
	  else if(i===0 && j>0){  
		document.write("<td>" + j + "<\/td>");
	  }
	  else if(j===0 && i>0){
	   document.write("<td width= 20%>" + String.fromCharCode(p) + "<\/td>");
	   p++;
	  }
		else {
			document.write("<td>" + "<input style = width:20px id = " + k + "></input>" + "\/" + "<input style = width:20px id=" + s + "></input>" + "<\/td>");
			k++;
			s++;
			}
	  }
	  document.writeln("<\/tr>");
    }
    document.write ("<\/table> ");
}

Вызывая данную функцию по нажатию кнопки у меня стирается все остальное со страницы и выводится одна лишь таблица. Как можно решить данную проблему?
При этом если я вызываю эту функцию просто в теге скрипта в html-файле, то никаких проблем дальнейшая работа не вызывает. Но мне необходимо именно по кнопке это сделать, для динамического создания этой таблицы. Пытался не использовать метод write, так как предположил что в нем ошибка, но через innerHTML и appendChild вообще ничего не работает. :)

рони 20.04.2019 02:02

Цитата:

Сообщение от Darveus
document.write

Добавление и удаление узлов
Мультивставка: insertAdjacentHTML и DocumentFragment

рони 20.04.2019 07:58

Darveus,
document.write для загруженных документов не используют.

Роман Андреевич 23.04.2019 06:01

Darveus, примерно так:

function addTable() { //созданиe таблицы
	
	var k = 0, s = 10, p = 65;
	//var str = document.getElementById('str').value;
	//var stlb = document.getElementById('stlb').value;
    var str = 2;
	var stlb  = 3;

	let str = ``;

    for (i=0; i <=str; i++) {

      let substr = ``;

      for (j=0; j<=stlb; j++) {

		  	if (i === 0 && j === 0){

				substr = "<td width= 20%>" + "FSM" + "</td>";

		  	} else if (i===0 && j>0) {  
				
				substr = `<td>" + j + "</td>`;
	  		
	  		} else if (j===0 && i>0){

	   			substr = "<td width= 20%>" + String.fromCharCode(p) + "<\/td>";
	   			p++;

  			} else {

  				substr = "<td>" + "<input style = width:20px id = " + k + "></input>" + "\/" + "<input style = width:20px id=" + s + "></input>" + "</td>";
				k++;
				s++;

			}
	  	}

	  	substr = `<tr>${substr}</tr>`;

    }

    str = `<table width="50%" border="2">${substr}</table>`;

    return str;

}


Есть второй вариант через document.createElement() ну тут сами разберитесь уже


Часовой пояс GMT +3, время: 18:46.