Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2014, 23:16
Новичок на форуме
Отправить личное сообщение для AnatolyS Посмотреть профиль Найти все сообщения от AnatolyS
 
Регистрация: 07.04.2014
Сообщений: 3

undefined is not a function
Доброго времени суток! Предполагаю, мой вопрос окажется странным.
Пишу один из первых скриптов, в конечном итоге должна создаваться таблица с заданным количеством строк и столбцов.
На данном этапе разработки в консоли браузеров появляется ошибка (сабж).
<html>
<head>
<title>Создание таблиц | Javascript</title>
<meta charset="utf-8" /> 
</head>
<body>
<input type="submit" value="Create" name="create" onclick="create_table()" />
<script language="JavaScript" type="text/javascript">
	function create_table() {
		var x = document.createElement('table');
		x.setattribute("border", "1");
		var row = table.insertRow(2);
		var cell = row.insertCell(1);
		cell.innerHTML = 'Ячейка';
		document.body.appendChild(table);
	}
</script>
</body>
</html>

Прошу помощи
Ответить с цитированием
  #2 (permalink)  
Старый 14.06.2014, 00:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

AnatolyS,
http://learn.javascript.ru/attribute...трибуты
Ответить с цитированием
  #3 (permalink)  
Старый 14.06.2014, 06:51
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

x.setattribute("border", "1");

setAttribute - размер имеет значение.

var row = table.insertRow(2);

Что за table? Если имеется ввиду новосозданная таблица x, то то как в нее можно вставить строку с индексом 2?

var cell = row.insertCell(1);

Тоже самое, что и со строкой - откуда в пустой строке возьмется ячейка с индексом 1?
Ответить с цитированием
  #4 (permalink)  
Старый 14.06.2014, 11:45
Новичок на форуме
Отправить личное сообщение для AnatolyS Посмотреть профиль Найти все сообщения от AnatolyS
 
Регистрация: 07.04.2014
Сообщений: 3

jsnb,
невнимательно читал инструкции, преодполагал, что 2 и 1 - не показатели индекса, а показатели количества строк и ячеек.
исправил код, все равно не работает пока:
<script language="JavaScript" type="text/javascript">
	function create_control() {
		var table = document.createElement('table');
		table.setAttribute("border", "1");
		var row = table.insertRow(0);
		var cell = row.insertCell(0);
		cell.innerHTML = 'Ячейка';
		document.body.appendChild('table');
	}
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 14.06.2014, 11:50
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

document.body.appendChild('table');

Тут кавычки не нужны. Пиши так: document.body.appendChild(table);

Кстати, если у insertRow и insertCell указать индексом -1, то строка/ячейка будут вставлены в конец т.е. после последней строки/ячейки.
Ответить с цитированием
  #6 (permalink)  
Старый 14.06.2014, 16:00
Новичок на форуме
Отправить личное сообщение для AnatolyS Посмотреть профиль Найти все сообщения от AnatolyS
 
Регистрация: 07.04.2014
Сообщений: 3

Доделал. Может быть, кому-нибудь сгодится:
<html>
<head>
<title>Создание таблиц | Javascript</title>
<meta charset="utf-8" /> 
</head>
<body>
<p>
Количество строк: <input type="number" value="Количество строк" id="rows_numb" min="0"/>
Количество столбцов: <input type="number" value="Количество строк" id="cells_numb" min="0"/>
Класс таблицы: <input type="text" id="table_class"/>
<input type="submit" onclick="create_control()" />
</p>

<script language="JavaScript" type="text/javascript">
	function create_control() {
		var table = document.createElement('table');
		var tclass = document.getElementById('table_class').value;
		table.setAttribute('class', tclass);
		table.setAttribute('border', '1');
		var x = document.getElementById('rows_numb').value;
		var y = document.getElementById('cells_numb').value
		for (var n = 0; n < x; n++) {
			var row = table.insertRow(-1);
			for (var m = 0; m < y; m++) {
			var cell = row.insertCell(-1);
			cell.innerHTML = '#' + m; 
			}
		}
		document.body.appendChild(table);
	}
</script>
</body>
</html>

Программа, которая генерирует таблицу с заданными классом, количеством строк и столбцов; каждая ячейка имеет свой порядковый номер.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции Hol1killer Prototype & script.aculo.us 11 05.12.2016 01:37
Помогите плиз разобраться с неймспейсами/замыканиями sneggg Javascript под браузер 1 05.04.2014 14:21
Как доступится к свойствам созданной коллекции? assd18 Backbone.js 8 01.12.2013 20:37
InputTextMask - undefined is not a function demi ExtJS 1 20.11.2013 07:48
Как сделать UI such a desktop? Trigger Элементы интерфейса 1 24.03.2013 21:16