НЕ МОЛЧИ!!!    Сделай что-нибудь,
чтобы остановить войну России в Украине.
...бойтесь людей равнодушных - именно с их молчаливого согласия происходят все самые ужасные преступления на свете.   ("Репортаж с петлёй на шее")

Интерфейс Node изнутри

Приводится список свойств и методов интерфейса Node модели DOM. Каждый элемент списка имеет краткое описание. Удобно использовать в качестве шпаргалки свойств и методов модели DOM тем, кто работает на чистом Javacsript.

Содержание

  • Свойства интерфейса Node
  • Методы интерфейса Node
  • Типы элементов DOM

В продолжение темы DOM, например, здесь, этот пост познакомит вас с одним из основных его элементов.
Интерфейс Node является той основой объектной модели документа (DOM, Document Object Model), от которой наследуются все типы узлов в HTML документах. Это значит, что элемент, полученный, например, командой let elem = document.getElementById(‘id_name’), как правило, будет обладать всем нижеперечисленным набором, НО… Прошу обратить внимание на оговорку «как правило», т.к. иногда могут встретиться исключения из общего правила, но это весьма малые исключения. Также хочу предупредить, что под словом «стандартные» имеется ввиду, что ниже приведен не полный список, а только стандартизованные атрибуты, свойства и поведение которых однозначно описаны в Web стандартах.

Свойства интерфейса Node

Node.baseURI – свойство возвращает строку с базовым URL адресом.

В различных скриптах и языках прогрммирования базовый URL может интерпретироваться по-разному, для HTML это понятие включает протокол, доменное имя и структуру директорий, т.е. адресная строка до последнего слеша «/».

Node.childNodes – возвращает объект, содержащий живой список всех детей узла.

Живой список означает, что список отслеживает изменения, происходящие в детях узла.

Node.firstChild – возвращает первый узел из списка прямых дочерних узлов.

Если у узла нет дочерних элементов в документе, то возвращается null.

Node.lastChild – возвращает последний узел из списка прямых дочерних узлов.

Если у узла нет дочерних элементов в документе, то возвращается null.

Node.localName – возвращает строку, определяющую локальную часть имени элемента.

Node.nextSibling – возвращает следующий узел из списка дочерних узлов.

Если следующего узла не существует, возвращается null.

Node.nodeName – возвращает строку с именем узла.

Возвращаемая строка имени зависит от типа узла, например, узел HTMLElement возвратит наименование тега, узел Document возвратит «#document», узел Text вернет строку «#text». HTML элементы имя тега всегда возвращают в верхнем регистре.

Node.nodeType – возвращает беззнаковое число, представляющее тип узла.

Все возможные типы узлов представлены в конце статьи в таблице.

Node.nodeValue – возвращает строку, представляющую значение узла.

Содержимое возвращаемой строки зависит от типа узла.

Node.ownerDocument – возвращает объект Document, которому принадлежит данный узел.

Если такой узел не существует, возвращается null.

Node.parentNode – возвращает объект Node, являющийся родителем данного.

Если родителя нет, возвращается null.

Node.parentElement – возвращает объект Element, являющийся родителем данного.

Если родителя нет, возвращается null.

Node.previousSibling – возвращает предыдущий узел из списка дочерних узлов.

Если следующего узла не существует, возвращается null.

Node.textContent – возвращает строку с текстовым содержимым элемента и его потомков.

Методы интерфейса Node

Node.appendChild(NewChild) – добавляет объект NewChild в конец списка наследников данного узла Node.

cloneNode(bool) – возвращает копию данного узла. Если аргумент равен true, элемент клонируется со своими дочерними элементами, иначе клон будет создан без дочерних. Вновь созданный объект не будет иметь родителя (parentNode = null), пользовательские данные исходного узла также не переносятся.

Node.hasAttributes() – проверяет есть ли у узла атрибуты. Не рекомендован к употреблению, но уж дюже удобный :).

Node.compareDocumentPosition(otherNode) – сравнивает позиции данного узла и узла из другого документа.

node.contains(otherNode) – определяет, является ли данный узел предком узла otherNode.

Node.hasChildNodes()– проверяет, имеет ли данный узел дочерние элементы.

Node.insertBefore(node1, node2) – вставляет узел node1 перед узлом node2 в список дочерних данного узла.

Node.isEqualNode(node) – проверяет два узла на равенство.

Node.normalize() – производит так называемую нормализацию текстовых узлов. При нормализации метод объединяет смежные и удаляет пустые текстовые узлы.

Node.removeChild(childNode) – удаляет заданного в параметрах наследника. Метод возвращает удаленный узел.

Node.replaceChild(newNode, oldNode) – заменяет указанного наследника новым узлом. Для любителей первоисточников привожу ссылку на описание NODE в W3C (на английском, естественно).

В заключение приведу список всех возможных типов узлов с их числовыми константами.

Типы элементов DOM

Тип узлаЗначение константы
ELEMENT_NODE1
ATTRIBUTE_NODE2
TEXT_NODE3
CDATA_SECTION_NODE4
ENTITY_REFERENCE_NODE5
ENTITY_NODE6
PROCESSING_INSTRUCTION_NODE7
COMMENT_NODE8
DOCUMENT_NODE9
DOCUMENT_TYPE_NODE10
DOCUMENT_FRAGMENT_NODE11
NOTATION_NODE12