Если у меня есть три формы на html-странице
<form name="sss">a</form>
<form name="sss">b</form>
<form name="sss">c</form>
Когда я пытаюсь получить доступ к document.sss, он возвращает обратно действительно проводной массив выглядит следующим образом
[form, form, form, sss: form]
Этот массив имеет три формы abc и свойство ss со значением, указывающим на первую форму, определенную с именем "sss". Однако, если вы
<div name="sss">d</form>
В дом, он не помещается в массив.
Я не понимаю, почему браузер делает это, потому что мы можем обращаться к формам другим способом. На самом деле путать эти формы с объектом документа. И даже если браузер хочет, чтобы у вас был простой способ передать эти формы, почему возвращаемый массив имеет проводное свойство "sss", указывающее на первую форму с именем "sss".
Потому что в 1990-х годах поставщики браузеров не сотрудничали. Они бросили черты без особого внимания к большой картине, отчаянно пытаясь завоевать долю на рынке, предоставляя разработчикам блестящие вещи для игры.
Теперь мы застряли с браузерами, желающими быть обратно совместимыми с созданными тогда сайтами (или написанными людьми с навыками той эпохи).
Наконец, я обнаружил нечто, называемое именованными свойствами, и это в спецификации HTML 5.3. Итак, вывод таков: это стандартная функция, но ее использование приведет к хрупкому коду в соответствии с HTML 5.3.
Предыдущий ответ: я тоже заметил это поведение. Проблема в том, что я не нашел ни документации, ни спецификации этого поведения в MDN или Standard. Безопасно ли использовать эту функцию в настоящее время?