Node#
Wstęp#
Interfejs Node stanowi definicję Web IDL dla wszystkich węzłów # (nodes) występujących w drzewie węzłów. Nie istnieje bezpośrednio żaden węzeł typu Node
, chociaż sam obiekt interfejsu jest dostępny w przestrzeni globalnej (można go rozszerzać) i wszystkie dziedziczące po nim węzły skojarzone zostały z kilkoma podstawowymi zagadnieniami.
W ramach uroszczenia platformy webowej obecna specyfikacja DOM4 pozostawia jedynie 7 rodzajów węzłów, ze wszystkich 12 zdefiniowanych do tej pory, ale nie wiadomo kiedy, i czy w ogóle, nowe zmiany się przyjmą. Wciąż najwięcej kontrowersji wzbudzają plany zerwania z węzłowym charakterem w przypadku atrybutów oraz sekcji CDATA.
Interfejs Node gromadzi w swojej definicji najbardziej ogólne właściwości i metody, które będą miały zastosowanie dla dowolnego węzła, niezależnie od jego typu. Dzięki wyodrębnieniu tych poleceń do osobnego interfejsu nie ma potrzeby dublowania tych samych opisów w każdym interfejsie z osobna. Warto podkreślić, że w pewnych osobliwych przypadkach cześć z udostępnianych poleceń nie będzie miała żadnego praktycznego przełożenia.
Interfejs Node dziedziczy z interfejsu EventTarget, dlatego interfejsy dziedziczące po Node będą miały dostęp do wszystkich poleceń z całego łańcucha dziedziczenia.
Właściwości Node#
Nazwa | Opis |
---|---|
Node.baseURI | Zwraca bazowy adres URL z właściciela skojarzonego z danym węzłem. |
Node.childNodes | Zwraca kolekcję węzłową ze wszystkimi dziećmi należącymi do danego węzła. |
Node.firstChild | Zwraca pierwsze dziecko należące do danego węzła. |
Node.lastChild | Zwraca ostatnie dziecko należące do danego węzła. |
Node.nextSibling | Zwraca brata następującego dla danego węzła. |
Node.nodeName | Zwraca łańcuch znakowy reprezentujący nazwę danego węzła. |
Node.nodeType | Zwraca liczbę całkowitą reprezentującą typ danego węzła. |
Node.nodeValue | Zwraca lub ustawia wartość dla danego węzła. |
Node.ownerDocument | Zwraca właściciela skojarzonego z danym węzłem. |
Node.parentElement | Zwraca rodzica elementowego dla danego węzła. |
Node.parentNode | Zwraca rodzica dla danego węzła. |
Node.previousSibling | Zwraca brata poprzedzającego dla danego węzła. |
Node.rootNode | Zwraca korzeń dla danego węzła. |
Node.textContent | Zwraca lub ustawia zawartość tekstową dla danego węzła i jego potomków. |
Metody Node#
Nazwa | Opis |
---|---|
Node.appendChild() | Dodaje przekazany węzeł za ostatnim dzieckiem w danym węźle i zwraca referencję do przekazanego węzła. |
Node.cloneNode() | Kopiuje dany węzeł i zwraca referencję do nowej kopii. |
Node.compareDocumentPosition() | Zwraca maskę bitową będącą wynikiem porównania pozycji przekazanego węzła względem danego węzła. |
Node.contains() | Zwraca wartość true jeśli przekazany węzeł jest potomkiem obejmującym dla danego węzła, w przeciwnym razie wartość false . |
Node.hasChildNodes() | Zwraca wartość true jeśli dany węzeł posiada jakiekolwiek dzieci, w przeciwnym razie wartość false . |
Node.insertBefore() | Dodaje przekazany węzeł przed wskazywane dziecko w danym węźle i zwraca referencję do dodawanego węzła. |
Node.isDefaultNamespace() | Zwraca wartość true jeśli przekazana przestrzeń nazw jest zgodna z domyślną przestrzenią nazw dla danego węzła, w przeciwnym razie wartość false . |
Node.isEqualNode() | Zwraca wartość true jeśli przekazany węzeł jest zgodny z danym węzłem, w przeciwnym razie wartość false . |
Node.isSameNode() | Zwraca wartość true jeśli przekazany węzeł jest równoważny z danym węzłem, w przeciwnym razie wartość false . |
Node.lookupNamespaceURI() | Zwraca przestrzeń nazw pasującą do przekazanego prefiksu przestrzeni nazw dla danego węzła. |
Node.lookupPrefix() | Zwraca prefiks przestrzeni nazw pasujący do przekazanej przestrzeni nazw dla danego węzła. |
Node.normalize() | Usuwa puste węzły tekstowe oraz łączy przyległe węzły tekstowe należące do danego węzła w jeden węzeł tekstowy. |
Node.removeChild() | Usuwa przekazane dziecko z danego węzła i zwraca referencję do usuniętego dziecka. |
Node.replaceChild() | Zastępuje przekazanym węzłem wskazywane dziecko w danym węźle i zwraca referencję do zastępowanego dziecka. |
Stałe Node#
Nazwa | Zapis dziesiętny | Zapis szesnastkowy | Znaczenie |
---|---|---|---|
Stałe dla właściwości nodeType # | |||
ELEMENT_NODE # | 1 | 1 | Węzeł typu Element . |
ATTRIBUTE_NODE* # | 2 | 2 | Węzeł typu Attr* . |
TEXT_NODE # | 3 | 3 | Węzeł typu Text . |
CDATA_SECTION_NODE* # | 4 | 4 | Węzeł typu CDATASection* . |
ENTITY_REFERENCE_NODE* # | 5 | 5 | Węzeł typu EntityReference* . |
ENTITY_NODE* # | 6 | 6 | Węzeł typu Entity* . |
PROCESSING_INSTRUCTION_NODE # | 7 | 7 | Węzeł typu ProcessingInstruction . |
COMMENT_NODE # | 8 | 8 | Węzeł typu Comment . |
DOCUMENT_NODE # | 9 | 9 | Węzeł typu Document . |
DOCUMENT_TYPE_NODE # | 10 | 10 | Węzeł typu DocumentType . |
DOCUMENT_FRAGMENT_NODE # | 11 | 11 | Węzeł typu DocumentFragment . |
NOTATION_NODE* # | 12 | 12 | Węzeł typu Notation* . |
Stałe dla metody compareDocumentPosition() | |||
DOCUMENT_POSITION_DISCONNECTED # | 1 | 1 | Węzły nie należą do tego samego drzewa węzłów. |
DOCUMENT_POSITION_PRECEDING # | 2 | 2 | Przekazany węzeł poprzedza dany węzeł. |
DOCUMENT_POSITION_FOLLOWING # | 4 | 4 | Przekazany węzeł następuje po danym węźle. |
DOCUMENT_POSITION_CONTAINS # | 8 | 8 | Przekazany węzeł zawiera dany węzeł. |
DOCUMENT_POSITION_CONTAINED_BY # | 16 | 10 | Przekazany węzeł jest zawarty w danym węźle. |
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC # | 32 | 20 | Do prywatnego użytku przez implementację. |
Składnia Web IDL#
interface Node # : EventTarget { const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; // historical const unsigned short TEXT_NODE = 3; const unsigned short CDATA_SECTION_NODE = 4; // historical const unsigned short ENTITY_REFERENCE_NODE = 5; // historical const unsigned short ENTITY_NODE = 6; // historical const unsigned short PROCESSING_INSTRUCTION_NODE = 7; const unsigned short COMMENT_NODE = 8; const unsigned short DOCUMENT_NODE = 9; const unsigned short DOCUMENT_TYPE_NODE = 10; const unsigned short DOCUMENT_FRAGMENT_NODE = 11; const unsigned short NOTATION_NODE = 12; // historical readonly attribute unsigned short nodeType; readonly attribute DOMString nodeName; readonly attribute DOMString baseURI; readonly attribute Document? ownerDocument; readonly attribute Node rootNode; readonly attribute Node? parentNode; readonly attribute Element? parentElement; boolean hasChildNodes(); [SameObject] readonly attribute NodeList childNodes; readonly attribute Node? firstChild; readonly attribute Node? lastChild; readonly attribute Node? previousSibling; readonly attribute Node? nextSibling; attribute DOMString? nodeValue; attribute DOMString? textContent; void normalize(); Node cloneNode(optional boolean deep = false); boolean isEqualNode(Node? other); boolean isSameNode(Node? other); // historical alias of === const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01; const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02; const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04; const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08; const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10; const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; unsigned short compareDocumentPosition(Node other); boolean contains(Node? other); DOMString? lookupPrefix(DOMString? namespace); DOMString? lookupNamespaceURI(DOMString? prefix); boolean isDefaultNamespace(DOMString? namespace); Node insertBefore(Node other, Node? child); Node appendChild(Node other); Node replaceChild(Node other, Node child); Node removeChild(Node child); };