Attr#
Wstęp#
Interfejs Attr stanowi definicję Web IDL dla samodzielnych obiektów, które najczęściej występują jednak w zwartym trio, czyli w połączeniu z elementami i pośredniczącą między nimi mapą nazwanych atrybutów. Obiekty typu Attr
są potocznie nazywane atrybutami # (attributes) i skojarzone zostały z kilkoma podstawowymi zagadnieniami.
Czasami w specyfikacji DOM4 może pojawić się termin "atrybut zawartości" (content attribute) aby uniknąć konfliktów względem samych atrybutów IDL. Ja osobiście dla atrybutów IDL zazwyczaj używam zwrotu "właściwość", gdyż jest on odpowiednikiem w przypadku wiązania z ECMAScriptem, i dzięki temu konflikty nazw w moim kursie nie występują.
Atrybuty to chyba jeden z najczęściej zmieniających się obszarów w całym DOM4. Wciąż nierozstrzygniętą kwestią pozostaje próba całkowitego porzucenia dziedziczenia z interfejsu Node, choć z drugiej strony niektóre implementacji poczyniły już pewne kroki w tym kierunku (szczegóły).
Interfejs Attr nie dziedziczy z żadnego innego interfejsu w ogólnym ujęciu DOM, chociaż w środowisku JS obiekty implementujące ten interfejs będą dziedziczyły z prototypu najwyższego rzędu. Zachowanie takie jest czymś normalnym w przypadku języka ECMAScript.
Atrybut można utworzyć za pomocą poleceń:
Document.createAttribute()
Document.createAttributeNS()
Element.setAttribute()
Element.setAttributeNS()
Właściwości Attr#
Nazwa | Opis |
---|---|
Attr.localName | Zwraca nazwę lokalną dla danego atrybutu. |
Attr.name | Zwraca nazwę kwalifikowaną dla danego atrybutu. |
Attr.namespaceURI | Zwraca przestrzeń nazw dla danego atrybutu. |
Attr.nodeName | Zwraca nazwę kwalifikowaną dla danego atrybutu. |
Attr.nodeValue | Zwraca lub ustawia wartość dla danego atrybutu. |
Attr.ownerElement | Zwraca element skojarzony z danym atrybutem. |
Attr.prefix | Zwraca prefiks przestrzeni nazw dla danego atrybutu. |
Attr.specified | Zwraca wartość true . |
Attr.textContent | Zwraca lub ustawia wartość dla danego atrybutu. |
Attr.value | Zwraca lub ustawia wartość dla danego atrybutu. |
Składnia Web IDL#
interface Attr # { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString name; readonly attribute DOMString nodeName; // historical alias of .name attribute DOMString value; [TreatNullAs=EmptyString] attribute DOMString nodeValue; // historical alias of .value [TreatNullAs=EmptyString] attribute DOMString textContent; // historical alias of .value readonly attribute Element? ownerElement; readonly attribute boolean specified; // useless; always returns true };