Одинаковые имена свойств 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 должно было превратиться в массив.... |
Что есть 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> Цитата:
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. |
Цитата:
Цитата:
|
Ну там речь про элементы внутри формы, а не про саму коллекцию форм
PS: но вторая часть фразы не точна, попробую доработать |
Часовой пояс GMT +3, время: 23:22. |