Атрибут
name
не является полностью избыточным по сравнению с id
.Как упомянуто выше, это полезно с <forms>
, но менее известно, что его также можно использовать с любым HTMLCollection
, таким как свойство children
любого элемента DOM.
HTMLCollection
, в дополнение к объекту, подобному массиву, будет иметь именованные свойства, соизмеримые с любым именованным элементом (или первым появлением в случае неуникального имени).Полезно получить определенные именованные узлы.
Например, в следующем примере HTML:
<div id='person1'>
<span name='firstname'>John</span>
<span name='lastname'>Doe</span>
<span name='middlename'></span>
</div>
<div id='person2'>
<span name='firstname'>Jane</span>
<span name='lastname'>Doe</span>
<span name='middlename'></span>
</div>
, присваивая имя каждому дочернему элементу, можно быстро и эффективно извлечь именованный элемент, например, lastname
, например:
document.getElementById('person1').children.namedItem('lastname')
... и если нет риска, что длина будет именем элемента-члена (если length
является зарезервированным свойством HTMLCollection
), более краткая запись может бытьиспользуется вместо:
document.getElementById('person1').children.lastname
Стандарт жизни DOM 2019 г. 29 марта
Объект HTMLCollection представляет собой набор элементов ...
Метод namedItem (key) при вызове должен выполнить следующие шаги:
Если ключ - пустая строка, вернуть ноль.
Вернуть первый элемент в коллекции, для которого хотя бы один изверно следующее: у него есть идентификатор, который является ключевым;он находится в пространстве имен HTML и имеет атрибут name, значением которого является ключ;