Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2012, 12:12
Интересующийся
Отправить личное сообщение для dump Посмотреть профиль Найти все сообщения от dump
 
Регистрация: 14.07.2011
Сообщений: 26

Одинаковые имена свойств DOM-элементов
Вот html код:

<form name="f1"><input type="button" value="press me"></form>
<form name="f1"><input type="button" value="press me"></form>

При этом нижеследующий JavaScript-код выводит два раз по f1:

var property;
for (property in document.forms)
alert(property);

Почему? Разве может быть два свойства с одинаковым именем в объекте? И ведь свойство f1 должно было превратиться в массив....
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2012, 13:05
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Что есть document.forms - коллекция форм в документе, вот свойства этой коллекции и выводятся (причём есть отличия в разных браузерах)

<form name="f1"><input type="button" value="press me"></form>
<form name="f1"><input type="button" value="press me"></form>

<script>
window.onload = function () {
	alert(document.forms.f1.innerHTML)

	var property;
	for (property in document.forms) {
		alert(property + '; ' + document.forms[property]);
	}
}
</script>


Сообщение от dump
И ведь свойство f1 должно было превратиться в массив....
откуда такая информация
f1 - значение атрибута name формы (должно быть уникальным в пределах документа), которое становится свойством коллекции document.forms, по которому можно обратиться к этой форме.
Возможно не факт, в доках пока не нахожу, где об этом написано.
https://developer.mozilla.org/en-US/...document.forms
https://developer.mozilla.org/en-US/...HTMLCollection
http://www.w3.org/TR/DOM-Level-2-HTM...tml#ID-1689064 п.1.4

PS: И нужно правильно объяснить undefined.

Последний раз редактировалось bes, 08.08.2012 в 14:31.
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2012, 13:12
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от bes
откуда такая информация, f1 - значение
отсюда
Цитата:
Может быть несколько элементов с одинаковым именем. В таком случае form.elements[name] вернет коллекцию элементов
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2012, 13:36
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Ну там речь про элементы внутри формы, а не про саму коллекцию форм
PS: но вторая часть фразы не точна, попробую доработать
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список ВСЕХ элементов DOM Почемучкин Events/DOM/Window 7 16.04.2012 11:33
поиск элементов в DOM Bebarr Swallow Общие вопросы Javascript 1 24.06.2011 14:57
Перебор DOM элементов DjDiablo jQuery 3 04.02.2011 16:26
DOM, определение стиля элементов Maximor17 Общие вопросы Javascript 3 04.11.2010 16:24
Как делать переменные имена свойств? khusamov Общие вопросы Javascript 2 04.08.2009 22:10