Показать сообщение отдельно
  #1 (permalink)  
Старый 28.09.2015, 13:58
Аспирант
Отправить личное сообщение для CraftLawrence Посмотреть профиль Найти все сообщения от CraftLawrence
 
Регистрация: 22.11.2014
Сообщений: 44

Проблема с getElementsByTagName и циклом
Такая задача. Есть страница с неизвестным количеством форм (2+). Необходимо просто в каждую форму добавить input type="hidden".
Сознаю элемент:
var inp2 = document.createElement( 'input' );
	inp2.type = 'hidden';
	inp2.name = 'url';
	inp2.id = 'urlpage';
	inp2.value = location.href;

Пытаюсь добавить его к формам:
var forms = document.getElementsByTagName('form');
	for (var i = 0; i <= forms.length; i++) {
		forms[i].insertBefore(inp2, forms[i].firstChild);
	}

Выдает ошибку Cannot read property 'insertBefore' of undefined

А если вместо счетчика i вставлю цифру, к примеру 2, то для третьей формы это сработает.
var forms = document.getElementsByTagName('form');
	for (var i = 0; i <= forms.length; i++) {
		forms[2].insertBefore(inp2, forms[2].firstChild);
	}
В чем проблема счетчика i? Почему JS не принимает в качестве порядкового номера переменную?
Ответить с цитированием