Приводится список свойств и методов интерфейса Node модели DOM. Каждый элемент списка имеет краткое описание. Удобно использовать в качестве шпаргалки свойств и методов модели DOM тем, кто работает на чистом Javacsript.
Содержание
- Свойства интерфейса Node
- Методы интерфейса Node
- Типы элементов DOM
В продолжение темы DOM, например, здесь, этот пост познакомит вас с одним из основных его элементов.
Интерфейс Node является той основой объектной модели документа (DOM, Document Object Model), от которой наследуются все типы узлов в HTML документах. Это значит, что элемент, полученный, например, командой let elem = document.getElementById(‘id_name’), как правило, будет обладать всем нижеперечисленным набором, НО… Прошу обратить внимание на оговорку «как правило», т.к. иногда могут встретиться исключения из общего правила, но это весьма малые исключения. Также хочу предупредить, что под словом «стандартные» имеется ввиду, что ниже приведен не полный список, а только стандартизованные атрибуты, свойства и поведение которых однозначно описаны в Web стандартах.
Свойства интерфейса Node
В различных скриптах и языках прогрммирования базовый URL может интерпретироваться по-разному, для HTML это понятие включает протокол, доменное имя и структуру директорий, т.е. адресная строка до последнего слеша «/».
Живой список означает, что список отслеживает изменения, происходящие в детях узла.
Если у узла нет дочерних элементов в документе, то возвращается null.
Если у узла нет дочерних элементов в документе, то возвращается null.
Node.localName – возвращает строку, определяющую локальную часть имени элемента.
Если следующего узла не существует, возвращается null.
Возвращаемая строка имени зависит от типа узла, например, узел HTMLElement возвратит наименование тега, узел Document возвратит «#document», узел Text вернет строку «#text». HTML элементы имя тега всегда возвращают в верхнем регистре.
Все возможные типы узлов представлены в конце статьи в таблице.
Содержимое возвращаемой строки зависит от типа узла.
Если такой узел не существует, возвращается null.
Если родителя нет, возвращается null.
Если родителя нет, возвращается null.
Если следующего узла не существует, возвращается 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_NODE | 1 |
| ATTRIBUTE_NODE | 2 |
| TEXT_NODE | 3 |
| CDATA_SECTION_NODE | 4 |
| ENTITY_REFERENCE_NODE | 5 |
| ENTITY_NODE | 6 |
| PROCESSING_INSTRUCTION_NODE | 7 |
| COMMENT_NODE | 8 |
| DOCUMENT_NODE | 9 |
| DOCUMENT_TYPE_NODE | 10 |
| DOCUMENT_FRAGMENT_NODE | 11 |
| NOTATION_NODE | 12 |
