IDL
[Exposed=Window, LegacyUnenumerableNamedProperties] interface NamedNodeMap { readonly attribute unsigned long length; getter Attr? item(unsigned long index); getter Attr? getNamedItem(DOMString qualifiedName); Attr? getNamedItemNS(DOMString? namespace, DOMString localName); [CEReactions] Attr? setNamedItem(Attr attr); [CEReactions] Attr? setNamedItemNS(Attr attr); [CEReactions] Attr removeNamedItem(DOMString qualifiedName); [CEReactions] Attr removeNamedItemNS(DOMString? namespace, DOMString localName); };
NamedNodeMap имеет связанный «элемент» (element) (элемент).
«Список атрибутов» (attribute list) объекта NamedNodeMap — это список атрибутов его элемента.
Поддерживаемые индексы свойств объекта NamedNodeMap — это числа в диапазоне от нуля до размера его списка атрибутов минус один, если только список атрибутов не пуст, и в этом случае индексы поддерживаемых свойств отсутствуют.
Получатель атрибута length должен возвращать размер списка атрибутов.
При вызове метода item(index) необходимо выполнить следующие шаги:
1. Если index равен или больше размера списка атрибутов этого this, возвращается значение null. 2. В противном случае верните список атрибутов[index] этого this.
Имена поддерживаемых свойств объекта NamedNodeMap являются возвращаемым значением при выполнении следующих шагов:
1. Пусть имена names будут полными именами атрибутов в списке атрибутов этого объекта NamedNodeMap, с опущенными дубликатами, по порядку. 2. Если элемент этого объекта NamedNodeMap находится в пространстве имен HTML, а его узловой документ является документом HTML, то для каждого name в names: 1. Пусть lowercaseName будет именем name в нижнем регистре ASCII. 2. Если lowercaseName не равен name, удалите name из names. 3. Верните names
Метод getNamedItem(qualifiedName) при вызове должен возвращать результат получения атрибута с заданным qualifiedName и элементом.
Метод getNamedItemNS(namespace, localName) при вызове должен возвращать результат получения атрибута с заданным пространством имен namespace, localName и элементом.
Методы setNamedItem(attr) и setNamedItemNS(attr) при вызове должны возвращать результат установки атрибута, заданного attr и element.
При вызове метода removeNamedItem(qualifiedName) необходимо выполнить следующие действия:
1. Пусть attr будет результатом удаления атрибута с указанным qualifiedName и элемента. 2. Если attr имеет значение null, генерируется исключение DOMException "NotFoundError". 3. Верните attr
Метод removeNamedItemNS(namespace, localName) при вызове должен выполнить следующие действия:
1. Пусть attr будет результатом удаления атрибута с учетом пространства имен namespace, localName и элемента. 2. Если attr имеет значение null, генерируется исключение DOMException "NotFoundError". 3. Верните attr
Ссылки
DOM стандарт — https://efim360.ru/dom/
Читайте перевод полной версии стандарта «объектной модели документа», чтобы ознакомиться со всеми концепциями и интерфейсами.
DOM — Living Standard — https://dom.spec.whatwg.org
Читайте официальную документацию живого стандарта «объектной модели документа», чтобы быть в курсе последних изменений.